随笔分类 -  网络编程

摘要:函数功能 该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口 函数参数 dwExStyle 指定窗口的扩展风格。该参数可以是下列值: WS_EX_NODRAG:防止窗口被移动 WS_EX_ACCEPTFILES:指定以该风格创建的窗口接受一个拖拽文件。 WS_EX_APPWINDOW:当窗口 阅读全文
posted @ 2020-04-07 08:41 chuyaoxin 阅读(411) 评论(0) 推荐(0) 编辑
摘要:1、原始套接字的协议是否可以设置为IPPRORO_TCP?UDP和TCP分组没有对应的套接字,此时会不会将其传递到原始套接口? 答: (1) 可以。对于socket()函数,在流式套接字编程中第二个参数是SOCK_STREAM,而对于数据报套接字编程,第二个参数是SOCK_DGRAM,在这两种情况下 阅读全文
posted @ 2020-04-05 17:42 chuyaoxin 阅读(775) 评论(0) 推荐(0) 编辑
摘要:原始套接字的特点 原始套接字(SOCK_RAW)可以用来自行组装IP数据包,然后将数据包发送到其他终端。也就是说原始套接字是基于IP数据包的编程(SOCK_PACKET是基于数据链路层的编程)。另外,必须在管理员权限下才能使用原始套接字。 原始套接口提供了普通TCP和UDP socket不能提供的3 阅读全文
posted @ 2020-04-05 17:30 chuyaoxin 阅读(3711) 评论(0) 推荐(0) 编辑
摘要:需要传递给新线程的任何参数都在CreateThread()的lpParamete中指定。线程函数在它的参数中接收这个32位的值。这个参数可以用作任何目的。函数返回它的退出状态。 函数原型如下: #include <windows.h> HANDLE CreateThread( LPSECURITY_ 阅读全文
posted @ 2020-03-30 21:20 chuyaoxin 阅读(1064) 评论(0) 推荐(0) 编辑
摘要:在网络编程实验2_(4)基于流式套接字的服务器程序设计中,创建了以下这个函数: DWORD WINAPI ClientThread(LPVOID lpParameter) 以前我只学过类似: int swap(int x,int y) 这样的函数,而这个函数看起来就很诡异,如何理解这个函数呢? DW 阅读全文
posted @ 2020-03-25 20:37 chuyaoxin 阅读(2412) 评论(0) 推荐(1) 编辑
摘要:#define _WINSOCK_DEPRECATED_NO_WARNINGS #include <iostream> #include <winsock2.h> using namespace std; #pragma comment(lib, "ws2_32.lib") #define PORT 阅读全文
posted @ 2020-03-23 20:46 chuyaoxin 阅读(643) 评论(0) 推荐(0) 编辑
摘要:#define _WINSOCK_DEPRECATED_NO_WARNINGS #include <iostream> #include <winsock2.h> using namespace std; #pragma comment(lib, "ws2_32.lib") #define PORT 阅读全文
posted @ 2020-03-23 20:43 chuyaoxin 阅读(503) 评论(0) 推荐(0) 编辑
摘要:TCP是面向连接的协议,需要通信双方首先建立一个连接。因为TCP可靠、稳定的特点,它被应用于大部分场合,但它对系统资源要求比较高。 TCP协议服务端程序的开发流程如下所示。 // 初始化Winsock库,获得协议版本 // 创建服务Socket对象 (指定协议类型,地址族信息) // 绑定Socke 阅读全文
posted @ 2020-03-20 22:57 chuyaoxin 阅读(1039) 评论(0) 推荐(0) 编辑
摘要:无论是使用哪种协议,无论是客户端还是服务端,在使用Socket进行通信之前,首先要完成Winsock库的初始化工作,之后应该创建Socket对象,用它进行网络通信。使用Socket这个API函数可以完成该功能,函数原型如下。 SOCKET socket( int af, //指定套接字使用的地址格式 阅读全文
posted @ 2020-03-20 10:33 chuyaoxin 阅读(1980) 评论(0) 推荐(0) 编辑
摘要:Winsock库对Windows的Socket编程有很好的支持,它提供了所有Socket相关的API函数。常用的Winsock库有1和2两个版本,流行应用程序使用的是Winsock2版本。其对应的动态链接库是WS2_32.dll,使用时需要包含Winsock2.h头文件,并要导入WS2_32.lib 阅读全文
posted @ 2020-03-20 10:12 chuyaoxin 阅读(1219) 评论(0) 推荐(0) 编辑
摘要:定义变量时往往要进行初始化,尤其是数组和结构体这种占用内存大的数据结构。在使用数组的时候经常因为没有初始化而产生“烫烫烫烫烫烫”这样的野值,俗称“乱码”。 PS:当然,也有个别例外的。比如strtol函数中的第二个参数,对于这个参数,我们只需要定义一个字符指针变量,并且不需要赋初值,然后将字符指针的 阅读全文
posted @ 2020-03-18 10:56 chuyaoxin 阅读(2310) 评论(0) 推荐(0) 编辑
摘要:功能 CONNECT函数建立到指定套接字的连接。 函数原型 int WSAAPI connect( SOCKET s, const sockaddr *name, int namelen ); 参数 s 标识未连接套接字的描述符 name 指向应建立连接的sockaddr结构的指针。 namelen 阅读全文
posted @ 2020-03-17 21:27 chuyaoxin 阅读(5450) 评论(0) 推荐(0) 编辑
摘要:cin 虽然可以使用 cin 和 >> 运算符来输入字符串,但它可能会导致一些需要注意的问题。当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。 例: // This program 阅读全文
posted @ 2020-03-17 11:37 chuyaoxin 阅读(3402) 评论(0) 推荐(2) 编辑
摘要:简要介绍 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议,数据在传输前要建立连接,传输完毕后还要断开连接。客户端在收发数据前要使用 connect() 函数和服务器建立连接。建立连接的目的是保证IP地址、端口、物理链路 阅读全文
posted @ 2020-03-14 22:11 chuyaoxin 阅读(1278) 评论(0) 推荐(1) 编辑
摘要:源端口和目的端口,各占2个字节,每个TCP报文段都包含源端口号和目的端口号,用于寻找发送端和接收端的应用进程; 序号,占4个字节,序号用来标识从TCP发送端向TCP接收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。序号是32位的无符号数。例如,一段报文的序号字段值是 301 ,而携带的数 阅读全文
posted @ 2020-03-14 16:48 chuyaoxin 阅读(1561) 评论(0) 推荐(0) 编辑
摘要:在写网络程序的时候,建立TCP socket: sock = socket(PF_INET, SOCK_STREAM, 0); 然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET,即使用IP。 相关头文件中的定义: 阅读全文
posted @ 2020-03-12 10:21 chuyaoxin 阅读(875) 评论(0) 推荐(0) 编辑
摘要:网间进程通信面临的问题 1)网间进程的标识问题。在同一主机中,不同的进程可以用进程号唯一标识,但在网络环境下,各主机独立分配进程号,此时进程号的唯一性失去意义。2)多重协议的识别问题。现行的网络体系结构有很多,如TCP/IP、IPX/SPX等,操作系统往往支持众多的网络协议,不同协议的工作方式不同, 阅读全文
posted @ 2020-03-12 10:14 chuyaoxin 阅读(509) 评论(0) 推荐(0) 编辑
摘要:网络中两个进程的通信实际上是借助网络协议栈实现的。应用进程把数据交给下层的传输层协议实体,调用传输层提供的传输服务,传输层及其下层协议将数据层层向下递交,最后由物理层将数据变为信号,发送到网上,经过各种网络设备的寻址和存储转发,才能到达目的端主机。目的端的网络协议栈再将数据层层上传,最终将数据送交接 阅读全文
posted @ 2020-03-11 23:31 chuyaoxin 阅读(3810) 评论(0) 推荐(0) 编辑
摘要:协议软件接口 从操作系统层面来看,系统内核集成了对TCP/IP的具体实现,具有常用协议应用能力,协议实现在内核空间执行; 从应用程序层面来看,各类涉及网络通信的应用程序都通过系统中的协议实现完成数据交互过程,应用程序在用户空间执行。 那么对于两个不同层次上的实现,应用程序如何访问操作系统内核中协议实 阅读全文
posted @ 2020-03-11 22:43 chuyaoxin 阅读(1952) 评论(0) 推荐(0) 编辑
摘要:不同CPU中,4字节整数1在内存空间的存储方式是不同的。4字节整数1可用2进制表示如下: 00000000 00000000 00000000 00000001 有些CPU以上面的顺序存储到内存,另外一些CPU则以倒序存储,如下所示: 00000001 00000000 00000000 00000 阅读全文
posted @ 2020-03-10 11:12 chuyaoxin 阅读(3598) 评论(0) 推荐(0) 编辑