socket服务器其实网上有很多的代码,但是大部分是基于Linux的,或者是Windows下的c++语言完成的设计,而且大部分是一对一的连接。今天发表一个C语言完成的socket服务器,可以实现一对多,多个客户端可以用IP和发送的数据来区分不同。另外,我的多客户端不是选择进程和多线程的办法,但是对于有需要的,我会添加线程和进程的使用。
注意:这是vs2017的环境,但是对于Windows大部分的编译器来说,是没有问题的,如果不行,对于报错的信息进行修改就可以了。如果是Linux的系统下,需要改的稍微多一点,但是万变不离其宗,基本上就是头文件名,参数和函数名的修改,整体的结构是我实验了很多次的。
1.socket服务器的代码 (一对一)
#include"pch.h"
#include <stdio.h>
#include <winsock2.h>
//#include<iostream>
//#define MaxSize 10000
#pragma comment(lib,"ws2_32.lib")
#define _WINSOCK_DEPRECATED_NO_WARNINGS//解决:inet_ntoa函数和无法使用inet_ntop的问题
int main(int argc, char* argv[])
{
//初始化WSA
WORD sockVersion = MAKEWORD(2, 2);//操作系统根据请求的Socket版本来搜索相应的Socket库,
//然后绑定找到的Socket库到该应用程序中。
//以后应用程序就可以调用所请求的Socket