基本TCP套接字编程
程序员文章站
2022-07-14 20:30:13
...
概述
socket函数
#include <sys/socket.h>
int socket(
int family,
int type,
int protocol);
对比AF_XXX和PF_XXX
AF_XXX表示地址族
PF_XXX表示协议族
connect
TCP客户用connect函数来建立与TCP服务器的连接
#include <sys/socket.h>
int connect(
int sockfd,
const struct sockaddr* servaddr,
socklen_t addrlen);
之前未调用bind时,内核会确定源IP地址,并选择一个临时端口作为源端口
针对TCP,出错可能情况
- 若TCP客户没收到SYN分解的响应
- 若对客户的SYN响应是RST
产生的三个条件:
1.目的地为某端口的SYN到达,但该端口上没有正在监听的服务器
2.TCP想取消一个已有连接
3.TCP接收到一个不存在连接上的分节
- 若客户发出的SYN在中间的某个路由器上引发了一个"destination unreachable" ICMP错误.客户机重发SYN,仍然未收到响应.
可能原因:
1.按本地系统的转发表,没有到达远程系统的路径
2.connect调用不等待就返回
上一篇: Socket套接字编程(TCP基本编程)
下一篇: 基本TCP套接字编程