端口
1:网络传送数据的时,按照端口来进行数据包分类;
1):端口的取值范围在[1, 65535];
2):[1, 1023]系统保留端口;
3):[1024,5000] BSD临时端口; 用户使用
4):[5001-65535], BSD服务器(非特权)端口; 用户使用
2:哪个数据包属于哪个端口的,根据端口分类;
1):所以应用程序通过网络收发数据的时候,一定会对应一个端口;
3:查看端口占用:
1) netstat -ano 观察被占用的端口
2)ESTABLISHED状态: 表示建立了连接正在通讯;
3)CLOSE_WAIT状态: 对方已经关闭,你也要关闭你的socket;
4)TIME_WAIT: 我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT
Win socket准备
1: windows socket 编译库文件与头文件:
#include<winsock2.h>
#include <windows.h>
#pragma comment(lib, "WSOCK32.LIB")
2: windows 开始运行的时候指定socket 的版本:
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(2, 2)
WSAStartup(wVersionRequested, &wsaDat