【发布时间】:2020-03-24 22:29:45
【问题描述】:
我正在尝试建立与 server.py 的连接,但 client.py 输出此错误
Traceback (most recent call last):
File "C:\Users\Nathan\Desktop\Coding\Langs\Python\Projects\Chatting Program\Client.py", line 15, in <module>
clientsocket.connect((host, port)) # Connects to the server
TypeError: an integer is required (got type str)
这是我的代码...
## CLIENT.PY
from socket import *
import socket
host = input("Host: ")
port = input("Port: ")
#int(port)
username = input("Username: ")
username = "<" + username + ">"
print(f"Connecting under nick \"{username}\"")
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Creates socket
clientsocket.connect((host, port)) # Connects to the server
while True:
Csend = input("<MSG> ") # Input message
Csend = f"{username} {Csend}" # Add username to message
clientsocket.send(Csend) # Send message to ONLY the server
如果我的 server.py 有问题,那么这里是代码
## SERVER.PY
from socket import *
import socket
import select
host_name = socket.gethostname()
HOST = socket.gethostbyname(host_name)
PORT = 12345
print(f"Server Info\nHOST: {HOST}\nPORT: {PORT}")
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind((HOST, PORT))
serversocket.listen(5)
clientsocket, address = serversocket.accept()
print(address)
with clientsocket:
while True:
Srecv = clientsocket.recv(1024)
print(f"{username} - {address}: {Srecv}")
# Add server time to message before sending
clientsocket.sendall(Srecv)
我试过将host和port转换成str、int和float,但只能成功转换成str。任何帮助将不胜感激。提前致谢!
【问题讨论】:
-
将端口号转换为整数是正确的方法。它有什么问题?
-
@mkrieger1 他没有设置参数的值。
标签: python python-3.x sockets python-sockets