首页 > 解决方案 > 套接字修复错误 TypeError:需要一个整数

问题描述

我必须连接到外星人服务器('localhost',10000),然后发送用户,然后发送外星人信号

但是我收到一条错误消息,这意味着我的 .send 格式不正确。您知道在一个.send 中发送两个不同字符串的好方法是什么吗?

import socket
clientsocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clientsocket.connect (('localhost', 10000))
clientsocket.send('USER:','aliensignal') 

Traceback (most recent call last):
File "/tmp/usercode.py", line 15, in <module>
clientsocket.send('USER:','aliensignal')
TypeError: an integer is required

标签: pythonsockets

解决方案


[Python 3.Docs]:套接字。send ( bytes[, flags] )的(可选)flags参数必须是一个整数(通常你不应该使用它,但如果你想要更多细节检查[man7]: RECV(2))。

至于您目前的情况,您可以:

  • 调用send两次(每个调用一次):

    clientsocket.send(b"USER:")
    clientsocket.send(b"aliensignal")
    
  • 连接字符串 ( bytes ) 并同时发送它们:

    clientsocket.send(b"USER:aliensignal")
    

推荐阅读