网络编程TCP服务端与客户端的搭建

关于网络编程我们首先了解下SOCKET。socket(简称套接字),是进程之间通信的一个工具,负责进程之间的网络数据传输,好比数据的搬运工。好比现实生活中的插座,所有的家用电器要想工作都是基于插座进行,进程之间想要进行网络通信需要基于这个 socket


socket效果图

1.服务端的创建流程

(1)在python中首先导包,创建一个套接字对象。

 import socket   #导包

service_host = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

(2)设置段端口号复用,让程序退出端口号立即释放

service_host.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,True)

(3) 绑定端口号

service_host.bind(('', 9090))   # ip地址与端口号以元组形式传入

(4)设置监听

service_host.listen(128)

(5)等待客户端连接请求

client, ip_port = service_host.accept()

(6)接受客户端请求信息

   recv_message = client.recv(1024)    # 设置客户端接受数据,并设置最大字节

   recv_message_new = recv_message.decode('utf-8')   # 字节流进行转码

  print('客户端消息:', recv_message_new)  #打印消息

(7)发送消息

send_message =input('请输入:')

client.send(send_message.encode('utf-8'))  #发送数据需要进行编码

(8)关闭套接字

client.close()

service_host.close()

2.客户端创建流程

(1)创建一个套接字对象

 import socket   #导包

xiaoming = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

(2) 与服务端建立连接

xiaoming.connect(('----------', 9090))     # 以元组的形式传入服务器地址和端口号

(3)发送数据

information =input('请输入:')

xiaoming.send(('xiaoming:' + information).encode('utf-8'))   # 需要进行转码

(4)接收数据

recv_infor = xiaoming.recv(1024)

print(recv_infor .decode('utf-8'))    # 查看需要进行转码

(5)关闭套接字

xiaoming.close()

你可能感兴趣的:(网络编程TCP服务端与客户端的搭建)