tcp服务器
import socket
def main():
tcp__server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp__server_socket.bind(("",7890))
tcp__server_socket.listen(128)
new_client_socket,client_addr=tcp__server_socket.accept()
recv_data=new_client_socket.recv(1024)
new_client_socket.send("hahha".encode("gbk"))
new_client_socket.close()
tcp__server_socket.close()
if __name__=="__main__":
main()
print("tcp")
tcp客户端
import socket
tcp_client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server_ip="192.168.124.1"
server_port=8080
tcp_client_socket.connect((server_ip,server_port))
tcp服务器升级
import socket
def main():
tcp__server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp__server_socket.bind(("",7890))
tcp__server_socket.listen(128)
while True:
print("------等待一个新的服务对象:")
new_client_socket,client_addr=tcp__server_socket.accept()
print("------新的服务对象已经到来:")
while True:
recv_data=new_client_socket.recv(1024)
print("接受到的数据:%s"%str(recv_data.decode("gbk")))
if recv_data:
new_client_socket.send("hahha".encode("gbk"))
else:
break
new_client_socket.close()
tcp__server_socket.close()
if __name__=="__main__":
main()
print("tcp")
udp发送端
import socket
def main():
while True:
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
str=input("请输入要输入的数据:")
if str=="exit":
break
udp_socket.sendto(str.encode("utf-8"), ("192.168.244.1", 8080))
udp_socket.close()
if __name__=="__main__":
main()
udp接收端
import socket
def main():
while True:
udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
localaddr=("",7788)
udp_socket.bind(localaddr)
recv_data=udp_socket.recvfrom(1024)
recv_msg=recv_data[0]
send_addr=recv_data[1]
print("%s:%s"%(str(send_addr), recv_msg.decode("gbk")))
udp_socket.close()
if __name__=="__main__":
main()
udp聊天器
import socket
def send_mess(udp_socket):
dest_ip = input("请输入对方的ip:")
dest_port = int(input("请输入对方的port"))
send_data = input("请输入要发送的信息:")
udp_socket.sendto(send_data.encode("gbk"),(dest_ip,dest_port))
def rec_mess(udp_socket):
recv_data = udp_socket.recvfrom(1024)
print("%s:%s" % (str(recv_data[1]), recv_data[0].decode("gbk")))
def main():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
print("******udp_聊天器******")
print("输入2,发送消息:")
print("输入1,接受消息:")
print("输入0,退出系统:")
op=input("请输入数据:")
if op=="2":
send_mess(udp_socket)
elif op=="1":
rec_mess(udp_socket)
elif op=="0":
break
else:
print("请重新输入数据:")
if __name__=="__main__":
main()
文件下载客户端
import socket
def main():
tcp_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
dest_ip=input("请输入要下载服务器ip:")
dest_port=int(input("请输入下载服务器的port:"))
tcp_socket.connect((dest_ip,dest_port))
download_file_name=input("请输入要下载的文件名字:")
tcp_socket.send(download_file_name.encode("gbk"))
recv_data=tcp_socket.recv(1024*1024)
if recv_data:
with open("[新]"+download_file_name,"wb") as f:
f.write(recv_data)
tcp_socket.close()
if __name__=="__main__":
main()
文件下载服务器
import socket
def send_file_2_client(new_client_socket,client_addr):
file_name= new_client_socket.recv(1024).decode("gbk")
print("客户端(%s)需要下载文件是:%s"%(str(client_addr),file_name))
file_content=None
try:
f=open(file_name,"rb")
file_content=f.read()
f.close()
except Exception as ret:
print("没有要下载的文件(%s)"%file_name)
if file_content:
new_client_socket.send(file_name)
def main():
tcp__server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp__server_socket.bind(("",7890))
tcp__server_socket.listen(128)
while True:
new_client_socket,client_addr=tcp__server_socket.accept()
send_file_2_client(new_client_socket, client_addr)
new_client_socket.close()
tcp__server_socket.close()
if __name__=="__main__":
main()
print("tcp")