连接过程为: 首先服务器端绑定要监听的ip和端口号,并在不停的监听(while死循环实现不停监听); 客户端向该该服务器发送请求,使用服务器监听的ip和端口作为参数。 服务监听到客户端的请求之后,生成通信套接字,用于和客户端通信,而服务器端监听套接字仍在监听
服务器端代码:
#author = 刘伟 time = 2017-06-08 import socket s = socket.socket() #创建socket对象 host = socket.gethostname() #获取主机名 port = 12345 #设置监听端口号 s.bind((host, port)) #socket绑定这个主机和该端口号 s.listen(5) #监听连接,最多可以接受5个客户连接 while True: c, addr = s.accept() #建立与客户端的连接,获得两个参数,第一个为通讯套接字,第二个为客户端程序所在主机ip和使用的端口号 print("请求连接的程序的ip和端口号为:", addr) c.send(b"hi my name is liuwei") #向客户端发送信息 c.close() #关闭通信套接字,但监听套接字仍未关闭,继续在监听客户端代码:
import socket #导入socket模块 s = socket.socket() #创建socket对象 host = socket.gethostname() #获取本地主机名 port = 12345 #将要连接的端口号 s.connect((host, port)) #Python参数一般是元组的形式,向ip为host,端口为port的主机发起连接 print(s.recv(1024)) #输出服务器端发出的信息 #s.close() #关闭socket