欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基本TCP套接字编程

程序员文章站 2022-07-14 20:30:13
...

概述

socket函数

	#include <sys/socket.h>
	int socket(
		int family, 
		int type, 
		int protocol);

基本TCP套接字编程
基本TCP套接字编程
基本TCP套接字编程

对比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调用不等待就返回