我是python程序的新手。我编写了一个客户机/服务器程序来添加两个数字。客户机给出两个数字,服务器加起来。运行时,我在客户端遇到上述错误。你知道吗
客户端.py
!/usr/bin/python
import socket
import sys
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('127.0.0.1', 58817)
sock.connect(server_address)
a=raw_input("Enter a number: ")
b=raw_input("Enter a number: ")
sock.sendall(a,b)
data = sock.recv(1024)
print data
sock.close()
服务器.py
!/usr/bin/python
import socket
import sys
def sum(a, b):
data=a + b
return data
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('127.0.01', 58817)
sock.bind(server_address)
sock.listen(1)
connection, client_address = sock.accept()
print ("connection from", client_address)
while True:
data=connection.recv(1024)
if not data: break
print "server received : ", repr(data)
sum(data)
connection.sendall(data)
connection.close()
在运行程序时,我在客户端遇到以下错误
Enter a number: 4
Enter a number: 3
Traceback (most recent call last):
File "clientadd.py", line 15, in <module>
sock.sendall(a,b)
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
TypeError: an integer is required
客户端分配int(a,b)有一些错误。如何改变这一点,并把一些顺序作为服务器读取?有人能帮我吗?并且可以检查程序是否良好,是否在工作状态下得到输出?你知道吗
谢谢!你知道吗
请记住,您只能通过套接字发送或接收字节。所以,您的客户机和套接字都需要反映这一点。你知道吗
在客户端,您可以执行以下操作,而不是sendall(a,b):
在服务器端,解析字符串以获得整数。你知道吗
您现在应该能够以字节形式发回总和。你知道吗
你在
server_address
服务器端有一个输入错误。应该是('127.0.0.1', 58817)
客户端会给出一个错误,因为它试图连接的服务器不存在。你知道吗相关问题 更多 >
编程相关推荐