簡體   English   中英

Python套接字編程-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM