Linux 网络编程——TCP
标志位(flag)
URG:紧急指针有效。
ACK:确认序列号有效。
PSH:接收方应该尽快将这个报文段交给应用层。
RST:重新连接。
SYN:同步序号yin
TCP服务器搭建
1、建立套接字描述符
sockfd = socket(AF_INET,SOCK_STREAM,0);
//TCP服务器套接字
2、添加网络地址信息
bind = (sockfd,(struct sockaddr *)&addr,len);
3、重构地址函数
struct sockaddr_in
{
sa_family_t sin_family;
in_port = sin_port;
struct in_addr sin_addr;
}
struct in_addr address
{
uint32_t s_addr;
}
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(50000);
addr.sin_addr.s_addr = inet_addr("0.0.0.0");
4、建立监听
listen(sockfd,5);
//参数1.文件描述符,2.等待队列长度
5、立连接,新建连接套接字
while(1)
{
acp_fd = accpet(sockfd,(struct sockaddr*)&addr,&len);
}
6、接收数据
while(1)
{
acp_fd = accpet(socfd,(struct sockaddr*)&addr,&len);
while(1)
{
t = recv(acp_fd,buf,sizeof(buf),0);
if(t == 0)
{
break;
}
if(t < 0)
{
close(sockfd);
close(t);
return -1;
}
}
close(t);
}