0
我有一箇中央服務器和連接到它的客戶端。客戶要求在線套接字連接到服務器答案(對於確切類型的套接字)。要的代碼通過套接字發送字符串並連接到該字符串
客戶
import socket
print 'Dobrodosli! '
socketZaKonekciju = []
def Main():
host = '127.0.0.1'
port = 5000
c = socket.socket()
c.connect((host, port))
while True:
k1 = c.recv(2048)
print "Server: " + str(k1)
prva = raw_input("-> ")
c.send(prva)
k2 = c.recv(2048)
print "Server: " + str(k2)
druga = raw_input("-> ")
c.send(druga)
k3 = c.recv(2048)
print "Server:" + str(k3)
treca = raw_input("->")
c.send(treca)
k4 = c.recv(2048)
print "Lista online klijenata sa vasom konverzijom \n" + str(k4)
peta = raw_input("Povezati se na prvog klijenta? \nDa/Ne ")
c.send(peta)
k5 = c.recv(2048)
print str(k5) + "\n"
k5 # now he shoul connect to k5
c.close()
if __name__ == '__main__':
Main()
服務器
import socket
host = '127.0.0.1'
port = 5000
brKonekcija = 5
buffer = 2048
listaKonv1 = []
listaKonv2 = []
listaKonv3 = []
listaKonv4 = []
def Main():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
print 'Socket napravljen'
s.bind((host,port))
print 'Socket bindovan'
s.listen(brKonekcija)
print 'Maksimalan broj konekcija: ' + str(brKonekcija) + ' konekcija'
s, addrTCP = s.accept()
print "Nova konekcija" + str(addrTCP)
print "Lista online soketa" + str(addrTCP)
client = s.getsockname()
print "Trenutni klijent" + str(client)
while True:
s.send("Dobrodosli na server! Za nastavak pritisnite Y")
k1 = s.recv(2048)
if k1 == 'Y':
s.send("Bravo! Pritisnuli ste "+ str(k1) + "\nKoju konverziju pruzate?")
k2 = int(s.recv(2048))
if k2 == 1:
listaKonv1.append(client)
if k2 == 2:
listaKonv2.append(client)
if k2 == 3:
listaKonv3.append(client)
if k2 == 4:
listaKonv4.append(client)
s.send("Koju konverziju zelite?")
k3 = int(s.recv(2048))
if k3 == 1:
s.send(str(listaKonv1[0]).strip("()"))
if k3 == 2:
s.send(str(listaKonv2[0]).strip("()"))
if k3 == 3:
s.send(str(listaKonv3[0]).strip("()"))
if k3 == 4:
s.send(str(listaKonv4[0]).strip("()"))
k4 = s.recv(2048)
if k4 == "Da":
s.send("\nSrecno!\n")
if k4 == "Ne":
s.send("\nPrekidam soket!\n")
s.close()
if __name__ == '__main__':
Main()
更清晰 服務器側部,其中從服務器列表的第一發送針對確切類型客戶端要求。所以,當客戶端獲得這個套接字時,它必須連接到它,但該套接字是一個到客戶端的字符串。我怎樣才能使字符串套接字連接的tupple。
歡迎來到Stack Overflow!理想情況下,您應該提供您編寫的代碼作爲解決問題的嘗試 - 該網站旨在幫助您解決問題或理解問題,而不是讓您開始。連接客戶端和服務器的代碼,或者您使用的軟件包也會有所幫助。 –
已添加。另外,客戶端必須連接到自己做一些事情(數字轉換)。非常感謝! –
連接字符串應該是什麼意思?你想讓客戶端連接到IP地址嗎? –