![](/img/trans.png)
[英]Python socket problem-ConnectionRefusedError: [WinError 10061]
[英]Python Socket Programming - ConnectionRefusedError: [WinError 10061]
我正在嘗試建立簡單的TCP客戶端-服務器連接,但是有一個我無法解決的異常。
這是我的服務器
from socket import *
serverPort = 1200
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind('',serverPort)
print('Server has started: '+str(serverPort))
print('Server is ready to accept requests: ')
while 1:
connectionSocket, addr = serverSocket.accept();
print('Klienti u lidh me serverin %s me port $s' % addr)
fjalia = connectionSocket.recv(1024)
FjaliaMeShkronjaTeMedha = fjalia.upper()
print(FjaliaMeShkronjaTeMedha)
connectionSocket.send(FjaliaMeShkronjaTeMedha)
connectionSocket.close()
這是我的客戶:
import socket
serverName = 'localhost'
serverPort = 1200
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((serverName,serverPort)) #here is the error
var = input("jeni lidhur me serverin, shkruaje kerkesen")
s.sendall(str.encode(var))
data = s.recv(1024)
s.close()
print('te dhenat e pranuara nga serveri',repr(data))
但是,在此特定部分的客戶端,連接被拒絕
s.connect((serverName,serverPort)) #here is the error
這是異常錯誤
誰能告訴我為什么會這樣? 我是套接字的新手,謝謝
代碼問題 :
您的服務器不接受任何連接,這就是您看到此錯誤的原因。 您的服務器實施中存在一些問題,讓我為您重點介紹。 首先關閉serverSocket.bind('',serverPort)調用不正確,應將其更改為serverSocket.bind(('',serverPort))一個元組 其次,您的套接字必須處於偵聽模式才能偵聽綁定的連接。這是固定代碼:
對於服務器
from socket import * serverPort = 1200 serverSocket = socket(AF_INET,SOCK_STREAM) serverSocket.bind(('',serverPort)) serverSocket.listen(10) print('Server has started: '+str(serverPort)) print('Server is ready to accept requests: ') while 1: client_sock, address = serverSocket.accept() print('Klienti u lidh me serverin {0} me port $s'.format( address)) fjalia = client_sock.recv(1024) FjaliaMeShkronjaTeMedha = fjalia.upper() print(FjaliaMeShkronjaTeMedha) client_sock.send(FjaliaMeShkronjaTeMedha) client_sock.close()
對於客戶端
import socket serverName = 'localhost' serverPort = 1200 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((serverName,serverPort)) #here is the error var = b"jeni lidhur me serverin, shkruaje kerkesen" s.sendall((var)) data = s.recv(1024) s.close() print('te dhenat e pranuara nga serveri',repr(data))
服務器端輸出
Server has started: 1200 Server is ready to accept requests: Klienti u lidh me serverin ('127.0.0.1', 54722) me port $s JENI LIDHUR ME SERVERIN, SHKRUAJE KERKESEN
客戶端輸出
te dhenat e pranuara nga serveri b'JENI LIDHUR ME SERVERIN, SHKRUAJE KERKESEN'
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.