网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket
建立网络通信连接至少要一对端口号(socket),socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
服务器端代码:
from socket import *
IP = '127.0.0.1'
PORT = 50000
buflen = 1024
listensocket = socket(AF_INET,SOCK_STREAM)
listensocket.bind((IP,PORT))
listensocket.listen(5)
print(f'服务端连接成功,{PORT}connecting')
datasocket, addr = listensocket.accept()
print("正在等待传输数据",addr)
while True:
recved = datasocket.recv(buflen)
if not recved:
break
info = recved.decode()
print(f'服务器收到了信息{info}')
datasocket.send(f'服务器收到了信息{info}'.encode)
datasocket.close()
listensocket.close()
客服端代码:
from socket import *
IP = '127.0.0.1'
SERVER_PORT = 50000
buflen = 1024
datasocket = socket(AF_INET,SOCK_STREAM)
datasocket.connect((IP,SERVER_PORT))
while True:
toSend = input(":")
if toSend=='':
break
datasocket.send(toSend.encode)
recved = datasocket.recv(buflen)
if not recved:
break
print(recved.decode)
datasocket.close()
这样就完成了一个sockt编程实现客户端与服务器的tcp/ip连接!