基本的Python客户端套接字示例

我一直在努力研究套接字的工作方式,并且试图将在此页面上找到的一些示例代码分解为一个非常简单的客户端套接字程序。由于这是基本的示例代码,因此我假设它没有错误,但是当我尝试对其进行编译时,会收到以下错误消息。


client_socket.connect((''localhost',5000)),第4行,文件“ client.py”,connect socket.error,第1行,文件:[Errno 111]连接被拒绝


我已经在这个错误的几乎所有地方进行了搜索,遇到类似问题的人似乎可以通过更改端口号,使用“连接”而不是“绑定”以及其他一些方法来获得帮助,但这些都没有他们适用于我的情况。非常感谢任何帮助,因为我是网络编程的新手,而对于python则是新手。


顺便说一下,这是防止链接由于任何原因而无法工作的代码。


#client example

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client_socket.connect(('localhost', 5000))

while 1:

    data = client_socket.recv(512)

    if ( data == 'q' or data == 'Q'):

        client_socket.close()

        break;

    else:

        print "RECIEVED:" , data

        data = raw_input ( "SEND( TYPE q or Q to Quit):" )

        if (data <> 'Q' and data <> 'q'):

            client_socket.send(data)

        else:

            client_socket.send(data)

            client_socket.close()

            break;


摇曳的蔷薇
浏览 487回答 3
3回答

肥皂起泡泡

它正在尝试连接到在端口5000上运行的计算机,但是连接被拒绝。您确定服务器正在运行吗?如果没有,则可以netcat用于测试:nc -l -k -p 5000某些实现可能要求您省略该-p标志。

慕村225694

这是一个非常简单的套接字程序。这与套接字获取一样简单。用于客户端程序(CPU 1)import sockets = socket.socket()host = '111.111.0.11' # needs to be in quoteport = 1247s.connect((host, port))print s.recv(1024)inpt = raw_input('type anything and click enter... ')s.send(inpt)print "the message has been sent"您必须用在第二台计算机网络设置中找到的IP编号替换第4行中的111.111.0.11。对于服务器程序(CPU 2)import sockets = socket.socket()host = socket.gethostname()port = 1247s.bind((host,port))s.listen(5)while True:&nbsp; &nbsp; c, addr = s.accept()&nbsp; &nbsp; print("Connection accepted from " + repr(addr[1]))&nbsp; &nbsp; c.send("Server approved connection\n")&nbsp; &nbsp; print repr(addr[1]) + ": " + c.recv(1026)&nbsp; &nbsp; c.close()运行服务器程序,然后运行客户端程序。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python