摘要:
前面的程序,不管服务器端还是客户端,都有一个问题,就是处理完一个请求立即退出了,没有太大的实际意义。能不能像Web服务器那样一直接受客户端的请求呢?能,使用 while 循环即可。修改前面的回声程序,使服务器端可以不断响应客户端的请求。 服务器端 server.cpp: #include <stdi 阅读全文
摘要:
所谓“回声”,是指客户端向服务器发送一条数据,服务器再将数据原样返回给客户端,就像声音一样,遇到障碍物会被“反弹回来”。 对!客户端也可以使用 write() / send() 函数向服务器发送数据,服务器也可以使用 read() / recv() 函数接收数据。考虑到大部分初学者使用 Window 阅读全文
摘要:
在 Linux 和 Windows 平台下,使用不同的函数发送和接收 socket 数据,下面我们分别讲解。 Linux下数据的接收和发送 Linux 不区分套接字文件和普通文件,使用 write() 可以向套接字中写入数据,使用 read() 可以从套接字中读取数据。前面我们说过,两台计算机之间的 阅读全文
摘要:
对于服务器端程序,使用 bind() 绑定套接字后,还需要使用 listen() 函数让套接字进入被动监听状态,再调用 accept() 函数,就可以随时响应客户端的请求了。 listen() 函数 通过 listen() 函数可以让套接字进入被动监听状态,它的原型为: int listen(int 阅读全文
摘要:
socket() 函数用来创建套接字,确定套接字的各种属性,然后服务器端要用 bind() 函数将套接字与特定的 IP 地址和端口绑定起来,只有这样,流经该 IP 地址和端口的数据才能交给套接字处理。类似地,客户端也要用 connect() 函数建立连接。 bind() 函数 bind() 函数的原 阅读全文
摘要:
在 here 一节中我们讲到了 Windows 和 Linux 在对待 socket 方面的区别。Linux 中的一切都是文件,每个文件都有一个整数类型的文件描述符;socket 也是一个文件,也有文件描述符。使用 socket() 函数创建套接字以后,返回值就是一个 int 类型的文件描述符。Wi 阅读全文
摘要:
WSAStartup()函数以及DLL的加载 WinSock(Windows Socket)编程依赖于系统提供的动态链接库(DLL),有两个版本: 较早的DLL是 wsock32.dll,大小为 28KB,对应的头文件为 winsock1.h; 最新的DLL是 ws2_32.dll,大小为 69KB 阅读全文
摘要:
本篇博客只是先展示一下代码,具体的编程相关请看后面的博客吧 服务器端代码 server.cpp 1 #include <stdio.h> 2 #include <winsock2.h> 3 4 #pragma comment(lib,"ws2_32.lib") 5 6 int main(int ar 阅读全文