Python中文
首页
教程
问答
标签
搜索
登录
注册
如何将TCP客户端连接到服务器并发送到服务器端?出现错误,无法成功运行代码。
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在学习TCP,正在尝试一个客户机/服务器程序。我的服务器端正在工作,但在客户端,我无法成功连接到服务器端。你知道吗</p> <p><strong>客户端的错误代码</strong></p> <p><em>第一个错误:</em></p> <p>回溯(最近一次呼叫): “文件”tcpclient.py文件,第13行,在 客户端套接字.connect((服务器名,服务器端口)) TypeError:应为str、bytes或bytearray,而不是list</p> <p><em>第二个错误:</em></p> <p>回溯(最近一次呼叫): “文件”tcpclient.py文件,第34行,在 客户端套接字.send(clientSentence.encode(),服务器地址) TypeError:需要整数(获取类型tuple)</p> <p><strong>服务器代码</strong>:此代码成功运行。你知道吗</p> <pre><code>import sys from socket import* serverSocket = socket(AF_INET, SOCK_STREAM) serversys = sys.argv if len(serversys) == 1: serverPort = 9999 else: serverPort = serversys[1] serverPort = int(serverPort) serverSocket.bind(('', serverPort)) serverSocket.listen(1) print ("The server is ready to receive.") while True: connectionSocket, addr = serverSocket.accept() print ("Connection accepted from: ", addr) clientSentence = connectionSocket.recv(1024).decode() clientSentence, clientAddress = serverSockset.recv(1024) clientSentence.decode() connectionSocket.close() if clientSentence[0].decode() == 'U': serverSentence = clientSentence.upper() connectionSocket.send(serverSentence[1:].encode(), clientAddress) connectionSocket.close() elif clientSentence[0].decode() == 'L': serverSentence = clientSentence.lower() connectionSocket.send(serverSentence[1:].encode(), clientAddress) connectionSocket.close() elif clientSentence[0].decode() == 'I': serverSentence = clientSentence.title() connectionSocket.send(serverSentence[1:].encode(), clientAddress) connectionSocket.close() </code></pre> <p><strong>客户端</strong>:这是发生这两个错误的地方。你知道吗</p> <pre><code>import sys from socket import* clientSocket = socket(AF_INET, SOCK_STREAM) clientsys = sys.argv serverName = clientsys[1:] serverPort = clientsys[2:] clientSocket.connect((serverName, serverPort)) #First Error serverPort = [int(serverPort) for serverPort in serverPort] serverAddress = (serverName, serverPort) sentenceChoice = input("Enter U for UPPERCASE SENTENCE, L for lowercase sentence, \nor I for Initial Caps Sentence: ") sentence = input("Enter sentence: ") clientSentence = sentenceChoice+sentence clientSocket.send(clientSentence.encode(), serverAddress) #Second Error serverSentence = clientSocket.recv(1024) print('From Server: ', serverSentence.decode()) clientSocket.close() </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你确定它应该是clientsys[2:]而不是clientsys[2]吗?你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
10 回答
如何添加表示整数的擦边字符串?
1 回答
如何添加要在Bokeh中使用的新font.ttf文件?
3 回答
如何添加要显示的矩阵XY轴编号和XY轴
8 回答
如何添加计数?
7 回答
如何添加计数器函数?
2 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
5 回答
如何添加计数器来跟踪while循环中的月份和年份?
3 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
5 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
5 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
9 回答
如何添加评论拉梅尔亚姆
9 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
7 回答
如何添加谷歌地点自动完成到Flask?
1 回答
如何添加超时、python discord bot
7 回答
如何添加超过1dp的检查
1 回答
如何添加距离方法
5 回答
如何添加跟随游戏的敌人精灵
10 回答
如何添加路径以便python可以找到程序?
3 回答
如何添加身份验证/安全性以使用happybase访问HBase?
7 回答