void client(int sock){
//2、设置客户端socket参数
struct sockaddr_in servaddr; // 声明一个sockaddr_in 类型的变量servaddr
memset(&servaddr, 0, sizeof(servaddr)); //初始化数组,释放变量使用控件
//3、设置传输协议、端口以及目的地址
servaddr.sin_family = AF_INET; //传输协议
servaddr.sin_port = htons(5188); // 端口
servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); //目的地址
//4、创建发送与接收缓存字节数组
int ret;
char sendbuf[1024] = {0}; //发送
char recvbuf[1024] = {0}; //接收缓存
//5、开始发送数据(此处是发送来自标准输入的数据)
while(fgets(sendbuf, sizeof(sendbuf), stdin) != NULL){ /* 每行的字符不能超过sizeof(sendbuf)才能正常工作 */
sendto(sock, sendbuf, strlen(sendbuf), 0, (struct sockaddr *)&servaddr, sizeof(servaddr)); // sendto()适用于发送未建立连接的UDP数据包
//6、开始接收数据,接收服务端返回的数据
perror("recvfrom");
exit(EXIT_FAILURE);
}
//fputs(recvbuf, stdout); //将服务端返回的数据写入到标准输出
//7、清空发送与接收缓存
memset(sendbuf, 0, sizeof(sendbuf));
memset(recvbuf, 0, sizeof(recvbuf));
}
//8、关闭socket流
close(sock);
}
int main(void){
int sock;
//1.创建客户端的socket
if((sock = socket(PF_INET, SOCK_DGRAM, 0)) < 0){
perror("socket");
exit(EXIT_FAILURE);
}
client(sock);
return 0;
}
//2、设置客户端socket参数
struct sockaddr_in servaddr; // 声明一个sockaddr_in 类型的变量servaddr
memset(&servaddr, 0, sizeof(servaddr)); //初始化数组,释放变量使用控件
//3、设置传输协议、端口以及目的地址
servaddr.sin_family = AF_INET; //传输协议
servaddr.sin_port = htons(5188); // 端口
servaddr.sin_addr.s_addr = inet_addr("127.0.0.1"); //目的地址
//4、创建发送与接收缓存字节数组
int ret;
char sendbuf[1024] = {0}; //发送
char recvbuf[1024] = {0}; //接收缓存
//5、开始发送数据(此处是发送来自标准输入的数据)
while(fgets(sendbuf, sizeof(sendbuf), stdin) != NULL){ /* 每行的字符不能超过sizeof(sendbuf)才能正常工作 */
sendto(sock, sendbuf, strlen(sendbuf), 0, (struct sockaddr *)&servaddr, sizeof(servaddr)); // sendto()适用于发送未建立连接的UDP数据包
//6、开始接收数据,接收服务端返回的数据
ret = recvfrom(sock, recvbuf, sizeof(recvbuf), 0, NULL, NULL); //recvfrom()接收一个数据报并保存源地址。
if(ret == -1){perror("recvfrom");
exit(EXIT_FAILURE);
}
//fputs(recvbuf, stdout); //将服务端返回的数据写入到标准输出
//7、清空发送与接收缓存
memset(sendbuf, 0, sizeof(sendbuf));
memset(recvbuf, 0, sizeof(recvbuf));
}
//8、关闭socket流
close(sock);
}
int main(void){
int sock;
//1.创建客户端的socket
if((sock = socket(PF_INET, SOCK_DGRAM, 0)) < 0){
perror("socket");
exit(EXIT_FAILURE);
}
client(sock);
return 0;
}

1万+

被折叠的 条评论
为什么被折叠?



