当前位置:   article > 正文

C语言实现-----网络通信_c语言网络通信

c语言网络通信

C语言实现-----网络通信

网络编程就是编写程序使两台联网的计算机相互交换数据。

一 、基本原理

  • 服务器端步骤:建立 socket,绑定 socket 和地址信息,开启监听,
    收到请求后发送数据。
  • 客户端步骤:建立 socket,连接服务器端,接收并打印服务器给
    的数据。

二、流程图:

在这里插入图片描述

三、核心函数包含:

  1. socket:创建一个 socket;
  2. bind:用于绑定 IP 地址和端口号到 socket;
  3. listen: 设置能处理的最大连接要求,listen()并未开始接收连线,
  4. 只是设置 socket 为 listen 模式;
  5. accept:用来接受 socket 连接。
  6. connect: 该函数用于绑定之后的 client 端与服务器建立连接;

四、函数介绍

1、socket 函数(套接字)

socket 的原意是“插座”,在计算机通信领域,Socket 被翻译
为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通
过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可
以向其他计算机发送数据。

基本语法:SOCKET socket(int af, int type, int protocol);

参数说明:

af:地址族,值包含 AF_INET(IPv4)AF_INET6(IPv6 );

type:数据传输方式/套接字类型,值包含 SOCK_STREAM(流格式套接字/面向连接的套接字)SOCK_DGRAM(数据报套接字/无连接的套接字);

protocol:传输协议,值包含 IPPROTO_TCP(TCP 传输协议)IPPROTO_UDP(UDP 传输协议)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2、bind 函数(绑定数据对象)

将套接字与特定的IP地址和端口绑定起来,只有这样,流经该 IP
地址和端口的数据才能交给套接字处理。

基本语法:int bind(SOCKET sock, const struct sockaddr *addr,int addrlen);

参数说明:
socket:服务器套接字对象;
addr:sockaddr 结构体变量的指针;
addrlen:为 addr 变量的大小;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3、listen 函数(监听)

让套接字进入被动监听状态。

基本语法:int listen(SOCKET socket,int backlog);

参数说明:
socket:服务器套接字对象(进入监听状态);
backlog:请求队列的最大长度;
  • 1
  • 2
  • 3
  • 4
  • 5

4、accept 函数(接收)

当套接字处于监听状态时,可以通过 accept() 函数来接收客户
端请求。accpet()函数返回一个新的套接字来和客户端通信.

基本语法:SOCKET accept(SOCKET sock, struct sockaddr *addr,int *addrlen);

参数说明:
socket:服务器套接字对象;
addr:sockaddr_in 结构体变量;
addrlen: addr 的长度;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5、connect 函数(连接服务器)

将套接字与服务器端的 IP 地址和端口绑定起来建立连接。

基 本 语 法 :int connect(SOCKET sock, const struct sockaddr*servaddr, int addrlen));

参数说明:
sock
  • 1
  • 2
  • 3
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/144141
推荐阅读
相关标签
  

闽ICP备14008679号