Socket
Socket是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。它可以看成是两个网络应用程序进行通信时,各自通信连接中的端点。Socket上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口
App通过Socket发送和接收数据,主要提供了TCP Socket和UDP Socket来收发数据,基于Socket对象操作系统提供了一系列接口来收发数据。
下面提供客户端和服务器代码及其讲解:
客户端
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32 // WIN32 宏, Linux宏不存在
#include <WinSock2.h>
#include <Windows.h>
#pragma comment (lib, "WSOCK32.LIB")
#endif
int main(int argc, char** argv) {
int ret;
// 配置一下windows socket 版本
// 一定要加上这个,否者低版本的socket会出很多莫名的问题;
#ifdef WIN32
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(2, 2);
ret = WSAStartup(wVersionRequested, &wsaData);
if (ret != 0) {
printf("WSAStart up failed\n");
system("pause");
return -1;
}
#endif
int s = socket(AF_INET