文档介绍:Unix网络编程
第四讲 TCP socket 编程
work的关系
TCP的特点
协议特点
实现特点
编程特点
TCP Sockets Programming
创建一个被动模式的(server) socket.
建立TCP 连接.
发送/接收数据.
关闭连接.
TCP C/S 编程
创建一个 TCP socket
int socket(int family,int type,int proto);
int sock;
sock = socket( , SOCK_STREAM,
0);
if (sock<0) { /* ERROR */ }
绑定到有名地址
int mysock;
struct sockaddr_in myaddr;
mysock = socket(,SOCK_STREAM,0);
= ;
= htons( 80 );
= htonl( INADDR_ANY );
bind(mysock, (sockaddr *) &myaddr, sizeof(myaddr));
建立被动模式的 TCP socket
被动模式:
地址已经确定.
告诉内核接受到我(应用程序)的连接请求.
3-way handshake
告诉内核为我(应用程序)将到来的连接保存(排队)起来.
listen()
int listen(int sockfd, int backlog);
sockfd - TCP socket (已经绑定地址)
backlog 内核为应用程序缓冲到来连接的数目.
listen() returns
-1 on error
otherwise 0.
listening socket的两个队列
接受连接请求 accept()
一旦调用了 listen(), 内核将替我们将带来的连接进行排队缓冲
处理三次握手
将多个连接排队缓冲.
当我们的应用程序可以处理新的连接时, 我们需要向内核请求下一个连接.