BSD套接字(BSD Sockets)

BSD Sockets是网络编程的常用方法,被UNIX、Linux、VxWorks和Windows(Winsock)支持。主要分为Stream Sockets(TCP,用于HTTP、FTP等可靠性传输)和Data Sockets(UDP,用于多点广播等)。示例展示了TCP和UDP服务器与客户端的通信过程,以及发送UDP广播包查找SNMP服务设备IP的程序。
摘要由CSDN通过智能技术生成

BSD Sockets 使用的最广泛的网络程序编程方法,主要用于应用程序的编写,用于网络上主机与主机之间的相互通信.

UNIX,Linux,VxWorks均支持BSD Sockets,Windows的Winsock基本上是来自BSD Sockets

Socket分为Stream Sockets和Data Sockets.

Stream Sockets是可靠性的双向数据传输用TCP,如HTTP,FTP等

Data Sockets是不可靠连接用UDP,如多点广播,DHCP,SNMP,RIP等.

 

  • TCP服务器端和一个TCP客户端通信的程序过程

  服务器

 

客户机

 
创建一个Socket

sFd =socket (AF_INET, SOCK_STREAM, 0)

把Socket和本机的IP,TCP口绑定

bind (sFd, (struct sockaddr *) &serverAddr, sockAddrSize)

为客户连接创建等待队列

listen (sFd, SERVER_MAX_CONNECTIONS)

这里循环等待,如有客户连接请求,则接受客户机连接要求

accept (sFd, (struct sockaddr *) &clientAddr, &sockAddrSize))

接受客户机发来的信息

fioRead (sFd, (char *) &clientRequest, sizeof (clientRequest)))

给客户机发信息

write (sFd, replyMsg, sizeof (replyMsg))

关闭Socket,通信终止

close (sFd)

 

两个浅蓝色的函数是两个Sockets的握手函数,即在这里建立连接
创建一个Socket

sFd =socket (AF_INET, SOCK_STREAM, 0)

注意:客户端不需要绑定,因为TCP口是动态的.
向服务器端发送连接请求,并在这里等待回应,如收到回应则向下执行

connect (sFd, (struct sockaddr *) &serverAddr, sockAddrSize)

服务器接受连接请求后,读服务器发过来的信息

read(sFd,buffer,20)

向服务器发信息

write(sFd, buffer, 20);

关闭Sockets

close (sFd)

 

  • UDP服务器端和一个UDP客户端通信的程序过程

  服务器

 

客户机

 
创建一个Socket

sFd =socket (AF_INET, SOCK_DGRAM, 0)

把Socket和本机的IP,TCP口绑定

bind (sFd, (struct sockaddr *) &serverAddr, sockAddrSize)

不需要创建等待
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值