连接过程为:
首先服务器端绑定要监听的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