C++ Socket 编程入门教程 —— 面向初学者的实践指南
Socket编程是网络编程的基础,它允许程序间通过网络进行通信。本教程将会介绍如何在Windows平台上使用C语言进行Socket编程,展示如何创建一个简单的客户端和服务器程序,让它们能够通过TCP协议互相通信。
准备工作
-
开发工具:
- 安装并配置好Visual Studio或任何你喜欢的C语言开发工具(例如Code::Blocks等)。
-
Windows SDK支持:
- 在Windows平台上,使用Socket编程时,需要链接到
ws2_32.lib
库,并在程序中调用WSAStartup
和WSACleanup
函数来初始化和清理Winsock库。
- 在Windows平台上,使用Socket编程时,需要链接到
1. 创建服务器端程序
服务器程序是用来监听客户端请求并处理连接的。首先,我们来实现一个简单的TCP服务器程序。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
#define PORT 8888
int main() {
WSADATA wsaData;
SOCKET serverSocket, clientSocket;
struct sockaddr_in serverAddr, clientAddr;
int clientAddrSize = sizeof(clientAddr);
// 初始化Winsock
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
printf("Winsock initialization failed.\n");
return -1;
}
// 创建服务器Socket
serverSocket = socket(AF_INET, SOCK_STREAM, 0);
if (serverSocket == INVALID_SOCKET