您的位置:首页 > 理论基础 > 计算机网络

简单的TCP服务器与客户端通讯

2017-11-12 22:39 162 查看
TCP服务器

import socket

def main():

# 创建套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定端口
tcp_socket.bind(("", 8888))

# # 反射服务器
# signal = tcp_socket.recv(1024)
#
# tcp_socket.send(signal)
# 监听
tcp_socket.listen(128)

while True:

# 接收信息
cilent_socket, cilent_addr = tcp_socket.accept()
print("接收到来自%s的信息" % str(cilent_addr))
file_name = cilent_socket.recv(1024)

try:
file = open(file_name, "rb")
while True:
data = file.readline()
if data:
cilent_socket.send(data)
else:
break

except Exception as error:
print("文件不存在")
else:
file.close()
print("已发送文件")
break

cilent_socket.close()


if name == ‘main‘:

main()

TCP客户端

import os

import socket

def main():

# 创建套接字

tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 输入目标服务器ip port 还有文件名
server_ip = input("请输入服务器IP:")
server_port = int(input("端口号:"))
file_name = input("文件名")

# 建立连接
tcp_socket.connect((server_ip, server_port))

tcp_socket.send(file_name.encode())
# 打开文件

file = open(file_name, "rb")
# 记录收到的字节数
count = 0
# 循环接收数据
while True:
data = tcp_socket.recv(1024)
if data:
file.write(data)
count += len(data)
else:
file.close()
if count == 0:
print("文件不存在")
os.remove(file_name)
else:
print("文件传输完毕 断开连接")
break
tcp_socket.close()


if name == ‘main‘:

main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tcp