Linux网络编程示例1
来源:互联网 发布:炉石盒子for mac 编辑:程序博客网 时间:2024/05/17 08:19
客户端:
#include <stdio.h>
#include <stdlib.h>#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(void)
{
int sfd;
int cfd;
struct sockaddr_in client_add;
char buf[50];
int ret;
//1.建立socket fd*/
sfd = socket(AF_INET, SOCK_STREAM, 0);
if(sfd < 0)
{
perror("socket");
exit(1);
}
//填充sin
client_add.sin_family = AF_INET;
client_add.sin_port = htons(8888);
client_add.sin_addr.s_addr = inet_addr("192.168.107.128");
//3.建立连接
cfd = connect(sfd, (struct sockaddr *)&client_add, sizeof(struct sockaddr));
if(cfd < 0)
{
perror("connect");
exit(1);
}
while(1)
{
sleep(1);
//读取服务端发来的数据
ret = read(sfd, buf, 50);
if(0 == ret)
{
printf("server is exit\n");
exit(1);
}
if(ret < 0)
{
perror("read");
exit(1);
}
printf("buf = %s\n", buf);
}
close(sfd);
return 0;
}
服务端
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAXLINE 50
int main(void)
{
int s_fd;
int b_fd;
int l_fd;
int a_fd;
struct sockaddr_in server_add;
//server_add清0
memset(&server_add, 0, sizeof(server_add));
char buf[MAXLINE];
s_fd = socket(AF_INET, SOCK_STREAM, 0);
if(s_fd < 0)
{
perror("socket");
exit(1);
}
server_add.sin_family = AF_INET;
server_add.sin_port = htons(8888);
server_add.sin_addr.s_addr = inet_addr("192.168.107.128");
//向系统登记你关心IP地址和端口号
b_fd = bind(s_fd, (struct sockaddr *)&server_add, \
sizeof(struct sockaddr));
if(b_fd < 0)
{
perror("bind");
exit(1);
}
//监听
l_fd = listen(s_fd, 5);
if(l_fd < 0)
{
perror("listen");
exit(1);
}
//接受客户端的连接
a_fd = accept(s_fd, NULL, NULL);
if(a_fd < 0)
{
perror("accept");
exit(1);
}
printf("accept sucess\n");
while(1)
{
fgets(buf, 50, stdin);
write(a_fd, buf, 50);
}
close(s_fd);
return 0;
}
编译:
gcc -o client client.c
gcc -o server server.c
先运行服务器
./server
再运行客户端
./client
- Linux网络编程示例1
- Linux 网络编程示例
- Linux网络编程echo简单示例1
- Linux TCP网络编程示例
- Linux TCP网络编程示例
- Linux网络编程示例2
- Linux TCP网络编程示例
- Linux网络编程简单示例
- Linux网络编程简单示例
- Linux网络编程简单示例
- 网络编程示例代码(window+linux)
- Linux网络编程之socket文件传输示例
- Linux网络编程之socket文件传输示例
- Linux网络编程--IO函数以及示例
- Linux网络编程之socket文件传输示例
- Linux网络编程之socket文件传输示例
- Linux网络编程之socket文件传输示例
- JAVA 网络编程(1) SOCKET 普通示例
- 等概率随机函数的实现
- 一点失落
- [20130907]A Short History of Nearly Everything[serial]
- 设计模式
- VC模拟输入中文
- Linux网络编程示例1
- 欲为Java技术大牛所需的25个学习要点
- Intelligent IME
- kindle paperwhite 使用体验
- AM335x SPL
- 运算符优先级关系
- Web_CSS_DIV_网页页面常用布局
- 扁平化设计五大原则
- 生活的点点滴滴