我有兩個腳本,Server.py和Client.py。 我有兩個目標:通過套接字發送字符串(python)
- 爲了能夠從客戶端一次又一次地發送數據到服務器。
- 能夠將數據從服務器發送到客戶端。
這裏是我的Server.py:
import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "192.168.1.3"
port = 8000
print (host)
print (port)
serversocket.bind((host, port))
serversocket.listen(5)
print ('server started and listening')
while 1:
(clientsocket, address) = serversocket.accept()
print ("connection found!")
data = clientsocket.recv(1024).decode()
print (data)
r='REceieve'
clientsocket.send(r.encode())
,這裏是我的客戶:
#! /usr/bin/python3
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host ="192.168.1.3"
port =8000
s.connect((host,port))
def ts(str):
s.send('e'.encode())
data = ''
data = s.recv(1024).decode()
print (data)
while 2:
r = input('enter')
ts(s)
s.close()
該功能適用於第一次( 'E' 成爲服務器和我獲取返回消息),但是如何讓它一遍又一遍地發生(像聊天應用程序)? 問題在第一次後開始。消息不會在第一次後去。 我做錯了什麼? 我是新的Python,所以請稍微詳細一點,如果可以的話,請給出整個事情的源代碼。
這是什麼代碼? –
正是你所要求的,「像聊天應用程序的東西」。這是一個聊天應用程序。 你的'serversocket.accept()'接受一個套接字,將它傳遞到類'client()'這是一個線程。該線程將在你的'accept()'函數中運行,不會阻止其他人連接,同時仍然執行兩件事。 1)接收來自客戶端的數據。 2)在每封郵件中用「你給我發送了什麼東西」來回答客戶。 – Torxed
@ user2670775另外,你可以使用你已經有的client.py,這個我寫的server.py也可以用你的客戶端代碼。 – Torxed