Socket用来传递网络信息。
服务器端:
首先创建一个服务器的py文件?
然后导入一下socket文件。
import socket
导入之后,需要创建一个实例。那么这里就用变量sk来充当这个实例。
sk = socket.socket()
因为socket类中的__init__()所需参数全都有默认值,如果在不需要更改的情况下直接为空就可以了。
一个服务器需要IP地址和端口,这里的IP和端口要用tuple(元组),定义一个变量赋值。这里的IP用本地代替。端口则用8888。
ip = ('127.0.0.1',8888)
然后sk绑定这个ip。
sk.bind(sk)
同时还可以设置一下同时连接数,5为数量,默认为1
sk.listen(5)
绑定之后就可以接受了。为了避免不知道程序在干什么,可以在接收前print一下告知。conn为链接的用户,address是用户的地址
print('程序正在接受信息....') conn,address = sk.accept()
这时候代码就滞留在接受的时候了,只有当接收到客户端才会继续运行。
我们则可以对客户端的连接做出反应,send命令是发送。
#定义信息 msg = "hello World" #返回信息 # python3.x以上,网络数据的发送接受都是byte类型 #如果发送的数据是str型,则需要进行编码 conn.send(msg.encode())
然后服务器端可以主动关闭连接
conn.close()
整段代码就是:
import socket #创建实例 sk = socket.socket() #定义ip和port ip_port = ("127.0.0.1",8888) #绑定监听 sk.bind(ip_port) #最大连接数 sk.listen(5) #提示信息 print('正在进行等待接受数据.....') #接受数据 conn, address = sk.accept() #定义信息 msg = "hello World" #返回信息 # python3.x以上,网络数据的发送接受都是byte类型 #如果发送的数据是str型,则需要进行编码 conn.send(msg.encode()) #主动关闭连接 conn.close()
客户端与服务端类似,这边直接放代码:
#导入模块 import socket #实例初始化 client = socket.socket() #访问的服务器端的ip和端口 ip_port = ("127.0.0.1",8888) #连接主机 client.connect(ip_port) #接收主机信息,参数是最大大小 data = client.recv(1024) #打印接收的数据 print(data.decode())
热门评论
还有就是必须服务器端和客户端同时运行
还有就是必须服务器端和客户端同时运行