摘要:
#define _WINSOCK_DEPRECATED_NO_WARNINGS #include <iostream> #include <winsock2.h> using namespace std; #pragma comment(lib, "ws2_32.lib") #define PORT 阅读全文
摘要:
TCP是面向连接的协议,需要通信双方首先建立一个连接。因为TCP可靠、稳定的特点,它被应用于大部分场合,但它对系统资源要求比较高。 TCP协议服务端程序的开发流程如下所示。 // 初始化Winsock库,获得协议版本 // 创建服务Socket对象 (指定协议类型,地址族信息) // 绑定Socke 阅读全文
摘要:
无论是使用哪种协议,无论是客户端还是服务端,在使用Socket进行通信之前,首先要完成Winsock库的初始化工作,之后应该创建Socket对象,用它进行网络通信。使用Socket这个API函数可以完成该功能,函数原型如下。 SOCKET socket( int af, //指定套接字使用的地址格式 阅读全文
摘要:
Winsock库对Windows的Socket编程有很好的支持,它提供了所有Socket相关的API函数。常用的Winsock库有1和2两个版本,流行应用程序使用的是Winsock2版本。其对应的动态链接库是WS2_32.dll,使用时需要包含Winsock2.h头文件,并要导入WS2_32.lib 阅读全文
摘要:
定义变量时往往要进行初始化,尤其是数组和结构体这种占用内存大的数据结构。在使用数组的时候经常因为没有初始化而产生“烫烫烫烫烫烫”这样的野值,俗称“乱码”。 PS:当然,也有个别例外的。比如strtol函数中的第二个参数,对于这个参数,我们只需要定义一个字符指针变量,并且不需要赋初值,然后将字符指针的 阅读全文
摘要:
功能 CONNECT函数建立到指定套接字的连接。 函数原型 int WSAAPI connect( SOCKET s, const sockaddr *name, int namelen ); 参数 s 标识未连接套接字的描述符 name 指向应建立连接的sockaddr结构的指针。 namelen 阅读全文
摘要:
通常我们见到的main函数都是不带参数的,实际上,main函数也可以带参数。main函数的参数是由谁传来的呢?答案是操作系统,C++规定main函数的参数只能有两个,即argc和argv,带参main函数的形式如下所示。 int main(int argc,char*argv[]) { …… } 第 阅读全文
摘要:
cin 虽然可以使用 cin 和 >> 运算符来输入字符串,但它可能会导致一些需要注意的问题。当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。 例: // This program 阅读全文
摘要:
简要介绍 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。客户端在收发数据前要使用 connect() 函数和服务器建立连接。建立连接的目的是保证IP地址、端口、物理链路 阅读全文
摘要:
源端口和目的端口,各占2个字节,每个TCP报文段都包含源端口号和目的端口号,用于寻找发送端和接收端的应用进程; 序号,占4个字节,序号用来标识从TCP发送端向TCP接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。序号是32位的无符号数。例如,一段报文的序号字段值是 301 ,而携带的数 阅读全文