网络编程
学习C++网络编程的基础知识和实践应用
85%
Socket基础
TCP通信
UDP通信
Socket编程基础
Socket API基础
使用Socket API进行网络通信的基础知识。
#include <iostream>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
using namespace std;
// 基本的Socket服务器
int createServer(int port) {
int serverSocket = socket(AF_INET, SOCK_STREAM, 0);
if (serverSocket == -1) {
cerr << "创建socket失败" << endl;
return -1;
}
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(port);
serverAddr.sin_addr.s_addr = INADDR_ANY;
if (bind(serverSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) < 0) {
cerr << "绑定失败" << endl;
return -1;
}
if (listen(serverSocket, 5) < 0) {
cerr << "监听失败" << endl;
return -1;
}
cout << "服务器启动,监听端口 " << port << endl;
return serverSocket;
}
// 基本的Socket客户端
int createClient(const char* serverIP, int port) {
int clientSocket = socket(AF_INET, SOCK_STREAM, 0);
if (clientSocket == -1) {
cerr << "创建socket失败" << endl;
return -1;
}
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(port);
inet_pton(AF_INET, serverIP, &serverAddr.sin_addr);
if (connect(clientSocket, (struct sockaddr*)&serverAddr, sizeof(serverAddr)) < 0) {
cerr << "连接失败" << endl;
return -1;
}
cout << "已连接到服务器" << endl;
return clientSocket;
}
- Socket是网络通信的基本接口
- 支持TCP和UDP协议
- 包含服务器端和客户端两种角色
- 需要处理字节序转换