TCP客戶端簡單代碼示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
功能:TCP客戶端簡單代碼示例
環境:python3.7
日期:2019/8/22 19:28
作者:指尖魔法師
版本:1.0
"""
import socket
def main():
# 1.創建tcp客戶端套接字
tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.連接服務器
server_ip = input("Please Input Server IP:")
server_port = int(input("Please Input Server Port:"))
tcp_client_socket.connect((server_ip, server_port))
print("Connect Server Success!")
while True:
# 3.發送數據
send_data = input("Please Input Send-data:")
if send_data == "exit":
break
tcp_client_socket.send(send_data.encode("utf-8"))
# 需要接收數據就接收
recv_data = tcp_client_socket.recv(1024).decode("utf-8")
print(recv_data)
# 4.關閉tcp客戶端套接字
tcp_client_socket.close()
if __name__ == '__main__':
main()
TCP服務端簡單代碼示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
功能:TCP服務端簡單代碼示例
環境:python3.7
日期:2019/8/22 19:28
作者:指尖魔法師
版本:1.0
"""
import socket
def main():
# 1.創建tcp服務端套接字
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.綁定服務器相關信息
server_port = 8001
server_addr = ("", server_port)
tcp_server_socket.bind(server_addr)
# 3.把套接字由主動改爲被動,處於監聽狀態
tcp_server_socket.listen(128)
print("服務端處於監聽中......")
while True:
# 4.接受一個客戶端的連接請求,返回一個新的套接字和客戶端地址
new_server_socket, client_addr = tcp_server_socket.accept()
print("Client %s Connect Success!" % str(client_addr))
while True:
# 5.用新的套接字接受客戶端數據
recv_data = new_server_socket.recv(1024).decode("utf-8")
if not recv_data:
break
print("From Client %s Data:%s" % (str(client_addr), recv_data))
# 6.返回消息給該客戶端
new_server_socket.send("Recv-data is OK!".encode("utf-8"))
# 7.關閉客戶端套接字
new_server_socket.close()
print("Client %s Disconnected!" % str(client_addr))
# 8.關閉監聽套接字
tcp_server_socket.close()
if __name__ == '__main__':
main()
運行效果如下:
客戶端:
服務端: