网络编程
文章平均质量分 78
把大学没学完的学完
用代码淋漓尽致的展现自己的思路
展开
-
winsock之 TCP/IP的简单编程
//使用WinSock库之前,要做准备工作,即调用WSAStartUp初始化WinSock库。初始化后,才能使用WinSock库//使用完WinSock库后,要做清理工作,即调用WSACleanUp清理//这个工程的目的是:启动服务器监听客户端的连接请求,如果服务器收到客户端的连接请求,执行Accept接受客户端的连接请求返回一个与这个客户端通信的socket。然后使用这个socket与这原创 2014-04-08 13:36:41 · 727 阅读 · 0 评论 -
winsock API积累
一、WSAStartup函数int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ); 使用Socket的程序在使用Socket之前必须调用WSAStartup函数。该函数的第一个参数指明程序请求使用的Socket版本,其中高位字节指明副版本、低位字节指明主版本;操作系统利用第二个参数返回请求的Socket的版本原创 2014-04-08 20:03:41 · 419 阅读 · 0 评论 -
C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
一台机器上可能不只有一个网卡,但每一个网卡只有一个MAC地址,而每一个网卡可能配置有多个IP地址;如平常的笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种;因此,如果要获得本机所有网卡的IP和MAC地址信息,则必须顺序获得每个网卡,再依次获取其信息等;在windows sdk中,用IP_ADAPTER_INFO结构体存储网卡信息,包括网卡名、网卡描述、网卡MAC地址、网卡IP等,该结构体原创 2014-04-08 21:09:25 · 818 阅读 · 0 评论 -
setsockopt()函数用法
1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历转载 2014-04-09 00:33:16 · 427 阅读 · 0 评论 -
TCP连接探测中的Keepalive 和心跳包
在做服务器时,如果发生客户端网线或断电等非正常断开的现象,如果服务器没有设置SO_KEEPALIVE选项,则会一直不关闭SOCKET。如果设置了SO_KEEPALIVE选项,则会使用操作系统的默认参数进行探测报文的发送。我们参考下MSN的一段话: SIO_KEEPALIVE_VALS (opcode setting: I, T==3) Enables or disables t原创 2014-04-07 20:31:15 · 2275 阅读 · 0 评论 -
关于SOCKET中send和recv函数工作原理总结
send函数工作原理: send函数只负责将数据提交给协议层。 当调用该函数时,send先比较待发送数据的长度len和套接字s的发送缓冲区的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR; 如果len小于或者等于s的发送缓冲区的长度,那么send先检查协议是否正在发送s的发送缓冲中的数据; 如果是就等待协议把数据发送完,如果协议还没有开始发送s的发送缓冲中原创 2014-04-09 22:05:38 · 425 阅读 · 0 评论 -
socket结构和几个IP地址转换函数
通用的结构体:struct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes of protocol address */};编程时常用的struct sockaddr_in {short int sin_family; /* Add原创 2014-04-12 19:48:22 · 441 阅读 · 0 评论 -
gethostbyname获取IP地址
#include int GetIPAddr(LPCSTR hostname){ int nAdapter = 0; //适配器数目 if(AfxSocketInit()) { HOSTENT *pHostEnt = gethostbyname(hostname); if(pHostEnt) { if(pHostEnt->h_addrty原创 2014-04-13 12:20:28 · 703 阅读 · 0 评论