套接字问题

IanChenV IanChenV 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
刚学linux的网络编程,为什么按照书里的程序写的服务器端,一直循环显示
client IP is 255.255.255.255,port is 1032
Content is :
client IP is 255.255.255.255,port is 1032
Content is :
client IP is 255.255.255.255,port is 1032
Content is :
client IP is 255.255.255.255,port is 1032
Content is :
client IP is 255.255.255.255,port is 1032
Content is :
client IP is 255.255.255.255,port is 1032
Content is :
client IP is 255.255.255.255,port is 1032
Content is :
client IP is 255.255.255.255,port is 1032
Content is :
client IP is 255.255.255.255,port is 1032
Content is :


#include <stdio.h>
#include <unistd.h>
#include <ctype.h>
#include <sys/socket.h>
#include <arpa/inet.h>


#define MAX_LINE 100

int main()
{
struct sockaddr_in sin;
struct sockaddr_in cin;
int l_fd;
int c_fd;
socklen_t len;
char buf[MAX_LINE];
char addr_p[INET_ADDRSTRLEN];
int port = 9090;
int n;

bzero(&sin,sizeof(struct sockaddr_in));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = htons(port);


l_fd = socket(AF_INET,SOCK_STREAM, 0);

bind(l_fd,(struct sockaddr*)(&sin),sizeof(sin));

listen(l_fd, 10);

printf("waiting.......\n");


while(1){

c_fd = accept(c_fd,(struct sockaddr*)&cin,&len);
n = read(c_fd,buf,MAX_LINE);

inet_ntop(AF_INET,&cin.sin_addr,addr_p,sizeof(addr_p));

printf("client IP is %s,port is %d\n",addr_p,ntohs(cin.sin_port));


printf("Content is : %s\n",buf);
close(c_fd);
}
if(close(l_fd) == -1){
perror("fail to close");
exit(1);
}
return 0;
}
...全文

相关推荐

python粘包问题及socket套接字编程详解

粘包问题 TCP协议在传输过程中会出现数据粘包问题 讲一下TCP和UDP的区别,都是传数据的协议,没有好坏之说,只是不同的应用需求可能会更好选择哪一个协议 TCP:适合传输数量大 ,需要建立连接,会出现粘包问题,粘包问题可以解决,确定传入的长度,接收同样长度就可以保证一次性传输完 UDP: 适合传输数据量小,没有粘包,不需要连接,一次性传输,下一次就是新的数据,弊端就是数据丢失,不安全 QQ是用什么协议呢?按理应该可以用UDP协议,但是实际用的是TCP协议,这是历史遗留问题,可还记得我们输入QQ一次性输入的内容字数有限制吗?就是规定了发送与接收的数据长度是一样的. 形成粘包的原因 1.两个

weixin_38651445

详解python3中socket套接字的编码问题解决

一、TCP 1、tcp服务器创建 #创建服务器 from socket import * from time import ctime #导入ctime HOST = '' #任意主机 PORT = 21567 #随机提供个端口号 BUFSIZ = 1024 # 缓冲区大小设置为1KB,可以根据网络性能和程序需要改变这个容量 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) #分配了 TCP 服务器套接字 tcpSerSock.bind(ADDR) #绑定到服务器地址以及开启 TCP 监听器的调用。 tc

weixin_38630139

python-套接字基于TCP实现一个远程执行命令的程序(含解决粘包问题)(csdn)————程序.pdf

python-套接字基于TCP实现一个远程执行命令的程序(含解决粘包问题)(csdn)————程序

一诺网络技术

联网睡眠理发师问题:多线程C#GUI应用程序,满足网络实验室的完全公平的“睡眠理发师问题”,使用套接字实现

为了执行,首先运行服务器的exe文件,然后运行客户端并点击开始按钮

mckaywrigley

关于套接字传输数据包的相关资料

关于套接字传输数据包的相关资料 关于传输过程中可能会遇到的问题

caochen158
评论
收藏 已收藏
分享
返回顶部
IanChenV
Linux/Unix社区 23,224 成员 74,535 内容