网络通讯(服务端搭建)

一.本篇概况

本篇文章主要以C语言为主,通过C语言中所设定的函数以及环境来将网络通讯的服务端进行搭建。注:本篇并未涉及服务端与客户端之间的收发数据。

二.代码实现 

1.初始化套接字库:

if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)      //初始化套接字库
{
    printf("WSAStartup() error\n");
    return 0;
}

2.创建套接字:

hServSock = socket(PF_INET, SOCK_STREAM, 0);       //创建套接字
if(hServSock == INVALID_SOCKET)
{
     printf("socket() error\n");
     return 0;
}

3.绑定套接字:

其中在绑定过程,我们需要先设置好服务端的IP地址与端口号,确保客户端能通过这两个元素与服务端进行连接。

/设置端口号与IP地址
memset(&servAddr, 0 ,sizeof(servAddr));
servAddr.sin_family = AF_INET;
servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
servAddr.sin_port = htons(9070);

if(bind(hServSock, (SOCKADDR*) &servAddr, sizeof(servAddr)) == SOCKET_ERROR)    //绑定套接字
{
    printf("bind() error\n");
    return 0;
}

4.监听套接字:

if(listen(hServSock, 5) == SOCKET_ERROR)        //监听套接字
{
    printf("listen() error\n");
    return 0;
}

5.与客户端连接:

当实现监听套接字后,客户端一旦进行连接,服务端会马上得知并可以从客户端那接收客户端所发送的数据。

nClnAddr = sizeof(clnAddr);
hClnSock = accept(hServSock, (SOCKADDR*) &clnAddr, &nClnAddr);         //接收客户端请求
if(hClnSock == INVALID_SOCKET)
{
    printf("accept() error\n");
    return 0;
}

6.数据设置:

当然在进行搭建前,我们还需要设置一些参数,用于搭建过程中使用。

WSADATA wsaData;    //套接字库
SOCKET hServSock;   //服务器套接字
SOCKET hClnSock;    //客户端套接字
SOCKADDR_IN servAddr, clnAddr;      //服务端与客户端地址
int nClnAddr;          //
char *buff = "Hello";       //设置服务器往客户端发送数据

7.服务端往客户端发送数据:

当建立好连接后,并不意味着只能客户端往服务端发送数据,当然服务端也能往客户端进行发送数据。

send(hClnSock, buff, 5, 0);         //发送数据

此处以“Hello”为例。

三.实现效果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序番茄君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值