Network Programming
Icedmilk
学无止境
展开
-
SOCKET UDP 发送和接受示例代码
头文件以及初始化:#include using namespace std;// socket header#include #pragma comment(lib, "Ws2_32.lib")void main(){ // recieve data from WSAStartup WSADATA wsaData; // initi原创 2010-03-01 15:20:00 · 5220 阅读 · 0 评论 -
SOCKET 网络字节序与主机字节序及其相互转换
主机字节序:整数在内存中保存的顺序 两种方式:Little endian 将低序字节存储在起始地址Big endian 将高序字节存储在起始地址 网络字节序:整数在网络中的发送顺序标准规定Big endian 首先发送高位字节字节序转换函数htonl: 转换long类型到网络字节序htons: 转换short类型到网络字原创 2010-03-01 16:34:00 · 5392 阅读 · 0 评论 -
SOCKET 端口状态变迁分析
端口的主要状态有如下几种:CLOSED, LISTENING, SYN_SENT, SYN_RCVD, ESTABLISHED, FIN_WAIT1, FIN_WAIT2, TIME_WAIT, CLOSE_WAIT, LAST_ACK状态变迁关系如下图:图1关于TIME_WAIT的说明:在TCP连接断开时,主动断开的一方在发送最后一个ACK后,就进入了TI原创 2010-03-02 09:20:00 · 2030 阅读 · 0 评论 -
SOCKET 常用函数的返回值分析
socket() accept()如果成功就返回生成的SOCKET,如果失败就返回INVALID_SOCKET.#define INVALID_SOCKET (SOCKET)(~0)实际上是 0xFFFFFFFF 4bytes bind() listen() connect()如果成功就返回0,如果失败就返回SOCKET_ERROR,需要通过WSAGetLastEr原创 2010-03-01 16:00:00 · 16519 阅读 · 0 评论 -
SOCKET 常用数据类型分析
1. SOCKET (套接字) typedef UINT_PTR SOCKET;typedef unsigned int UINT_PTR; 4个字节 2. sockaddr, SOCKADDR, PSOCKADDR (网络地址,通用)typedef sockaddr SOCKADDR, *PSOCKADDR; s原创 2010-03-01 16:07:00 · 3720 阅读 · 0 评论 -
SOCKET TCP 发送和接收示例代码
发送端代码: // socket used to send SOCKET sockSend = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // local address SOCKADDR_IN addrSend; addrSend.sin_addr.S_un.S_addr = inet_addr原创 2010-03-01 15:38:00 · 3186 阅读 · 2 评论 -
SOCKET UDP recvfrom循环中退出策略选择分析
一般是有一个接受线程,接收线程里有一个循环recvfrom接收数据 退出线程时可以采用的方法: 1. 在其他线程里调用closesocket(),接收线程里会的recvfrom会返回10004错误,如果继续recvfrom会返回10038错误,通过检测这两个错误来进行退出 2. 在其他线程里给接收线程sendto一个特殊包,通过检测这个包判断是否需要退出 3. 使用原创 2010-03-02 16:19:00 · 4002 阅读 · 1 评论