运维开发网

5-tcp套接字服务端编程

运维开发网 https://www.qedev.com 2020-07-23 15:07 出处:网络 作者:运维开发网整理
import socket 1.创建套接字 sockfd= socket.socket(socket_family = AF_INIT,socket_type=SOCK_STREAM,proto)   功能:创建套接字 参数: socket_family:选择地址族类型 AF_INET       socket_type: 套接字类型 SOCK_STREAM 流式               SO

import socket

1.创建套接字

sockfd= socket.socket(socket_family = AF_INIT,socket_type=SOCK_STREAM,proto)

 

功能:创建套接字

参数: socket_family:选择地址族类型 AF_INET

      socket_type: 套接字类型 SOCK_STREAM 流式

              SOCK_DGRAM 数据报

   proto:选择子协议类型  通常为0

返回值:返回套接字对象

2.绑定服务端地址

sockfd.bind(addr)

功能:绑定IP地址

参数:元祖(IP,port)

 localhost  可以被本机用 127.0.0.1

127.0.0.1   同上

192.168.205.127  可以被别人用192.168.205.127访问

0.0.0.0   可以被别人用192.168.205.127访问

      也可被自己用 127.0.0.1访问 

3.设置监听套接字

sockfd.listen(n)

功能:将套接字设置为监听套接字,创建监听队列。

参数:n表示监听队列大小。

*一个监听套接字可以连接多个客户端套接字。

 

4.等待处理客户端连接请求

connfd,addr= sockfd,addept()

功能:阻塞等待处理客户端连接。

返回值:connfd 客户端连接套接字

    addr 连接的客户端地址 

*阻塞函数:程序运行的过程中遇到阻塞函数则暂停运行,知道某种阻塞条件达成再继续运行。

 

5.消息收发

connfd.recv(buffersize)

功能:接受对应客户端消息

参数:一次最多接受多少字节

返回值:接收到的内容。

*没有消息则会阻塞。

n = connfd.send(data)

功能:发送消息给对应客户端

参数:要发送的内容,必须是bytes格式。

返回值:返回实际发送消息的大小。

 

6.关闭套接字

 

#tcp_server.py
from socket import *
#创建套接字
sockfd = socket(AM_INIT,SOCK_STREAM)
#创建地址
socket.bind((0.0.0.0),8888)

#设置监听
sockfd.listen(5)

#等待接受链接
print("waiting")
connfd,addr = sockfd,accept()
print(‘connect from‘,addr)

#收发消息
data = connfd,recv(1024)
print(data)
n = connfd.send(b‘receive your message‘)

#关闭套接字
connfd.close()
sockfd.close()

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号