socket流程

socket确实比较乱,所以整理流程。

服务端:

1、import socket  引入模块

2、创建socket对象。server = socket.socket()

3、声明服务端的ip地址和端口号。ip_prot = ('192.168.12.97',8096)  # 本机作为服务器的话,ip地址就是本机地址,端口号必须在8000以后。

4、绑定socket对象和声明的ip地址及端口号。server.bind(ip_prot)  #这应该是固定写法?

5、开始通过socket对象的listen方法监听ip地址和端口。server.listen(参数)  #这里这个参数据说不用给,参数的意思是可以有多少等待的,而不是有多少可以同时接通的。

6、等着别人联通过来。conn,addr = server.accept()  # 这的conn就是拿到的客户端和服务器之间的连接通道。这个通道很重要。下面很多操作是通过这个进行的。

7、接收收到的信息。from_client_msg = conn.recv(1024)   # 这里的1024必须给出一个数字,因为收到的是字节码,所以单位是B。1024B = 1KB,1024KB = 1MB。注意这里是使用conn这个连接通道来接收的信息。

8、进行解码。from_client_msg = from_client_msg.decode('utf-8')   # 因为收到的是字节码,所以必须解码。

9、打印输出收到的信息。print(from_client_msg)

10、给对方回信。msg = input('这里是你想说的话:')   # 输入你的信息给对方回信

11、通过conn的send方法给对方发信息。conn.send(msg.encode('utf-8'))   # 因为i发送的是字节码,所以必须进行编码。

12、关闭连接通道。conn.close()   # 这只是关闭连接通道

13、关闭socket对象。server.close()   

以上7至11步可以在一个while循环内,这样就能接一句发一句的进行对话了。

客户端:

前两步同服务端,引入socket模块,实例化socket对象。

import socket

client = socket.socket()

3、注明服务器的ip地址和端口号。server_ip_port = ('192.168.12.97'),8096    # 注意ip地址和端口号一定要和服务端的一样。

4、连接到服务端。client.connect(server_ip_port)    # 这里是通过socket对象client的connect方法,连通到声明好的服务端。

while循环开始

5、通过client的send方法发消息。client.send(input('你想对服务端说的话:').encode('utf-8')    # 发消息用send方法,因为发送的是字节码,所以必须进行编码。

6、接收服务端传回的消息。from_server_msg = client.recv(1024).decode('utf-8')  # recv就i是收信息,而且必须声明一个参数。收到的字节码必须进行解码。

7、打印输出收到的信息。print(from_server_msg)

循环结束

8、关闭socket对象,通话结束。   client.close()

原文地址:https://www.cnblogs.com/wjywinner/p/10422337.html