大家好,又见面了,我是你们的朋友全栈君。
以下纯属个人练习,有错误之处,望雅正
以下纯属个人练习,有错误之处,望雅正
#*coding:utf-8*
import socket
""" TCP 的客户端编程 1.socket 2.connet (TCP) 3.send 4.close """
def CC_client():
# 创建
tcp_cli = socket.socket(family=socket.AF_INET,type=socket.SOCK_STREAM)
# 链接
SER_IP = "192.168.43.90"
SER_PORT = 8888
ser_info = (SER_IP,SER_PORT)
tcp_cli.connect(ser_info)
#send
while True:
send_info = str(input("客户端发送:"))
# if send_info == "exit":
# break
tcp_cli.send(send_info.encode("utf-8"))
#recv
tcp_cli_recv_info = tcp_cli.recv(1024)
# print("客户端接收:%s" % tcp_cli_recv_info.decode("utf-8"))
print(tcp_cli_recv_info)
#clsoe
tcp_cli.close()
if __name__ == "__main__":
CC_client()
#--coding:utf-8--
import socket
""" TCP 的服务端 1,socket 创建socket 2.bind 绑定IP和端口 3.listen 处于监听状态 4.accept 接进来客户端的连接 5.recv/send 接受或者发送信息 6.close 关闭 """
def CC_server():
# 创建
tcp_ser = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
#bind
SER_IP = "192.168.43.90"
SER_PORT = 8888
ser_info = (SER_IP, SER_PORT)
tcp_ser.bind(ser_info)
#listen
LISTEN_NUM = 10
tcp_ser.listen(LISTEN_NUM)
while True: #循环为多个客户端服务,一直处于监听状态
#accept 1默认会阻塞,2并返回一个新的套接字用于和接进来的客户端进行数据传输,3并记录客户端的信息,为用户进行服务
print("服务器的IP:%s,端口:%d,正在等待新的客户端的到来" % (SER_IP,SER_PORT ))
tcp_ser_for_client,client_addr = tcp_ser.accept()
print("客户端已经到来,信息如下:%s" % str(client_addr))
while True: #循环为同一个用户服务多次
#recv 返回值为空时,则客户端调用了close
tcp_ser_recv_info = tcp_ser_for_client.recv(1024)
if ((tcp_ser_recv_info == "exit") or (tcp_ser_recv_info == None)):
break
print("服务端接收:%s" % tcp_ser_recv_info.decode("utf-8"))
#send
tcp_ser_send_info = str(input("服务端发送:"))
tcp_ser_for_client.send(tcp_ser_send_info.encode("utf-8"))
#close
#close 关闭客户端的连接
tcp_ser_for_client.close()
print("为客户端%s的服务已经结束" % str(client_addr))
tcp_ser.close()
if __name__ == "__main__":
CC_server()
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168453.html原文链接:https://javaforall.cn