C语言基于socket-实现客户端-服务端通信
关于socket不多赘述,博主上一篇做过简单介绍,详情请自行百度查询,本次主要做的是基于socket通信的C语言实现
-
需要使用的头文件:
winsock2.h
操作平台Windows,使用编译器dev(报错缺的文件看文章末尾的补充) -
winsock2中数据结构及调用简单说明:
socket的创建使用SOCKET,
socket的的地址空间创建采用socketaddr_in
bind()服务端用来绑定端口
listen()侦听模式
accept()接受服务
send()发送数据
recv()接收数据
connect()客户端连接服务器socketaddr_in的数据结构如下:
/*struct sockaddr
{
//地址族,2字节
unsigned short sa_family;
//存放地址和端口,14字节
char S_un.S_addr[14];
}
struct sockaddr_in
{
//地址族
short int sin_family;
//端口号(使用网络字节序)
unsigned short int sin_port;
//地址
struct in_addr sin_addr;
}
*/
该数据winsock2,已经定义好无需二次定义,博主给出仅供参考方便编程理解。
- 服务端代码实现
#include <stdio.h>
#include <winsock2.h>
#include<string.h&g