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地址吗? –