为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

摇曳的蔷薇 2019-11-11 10:36:59
我一直在努力研究套接字的工作方式,并且试图将在此页面上找到的一些示例代码分解为一个非常简单的客户端套接字程序。由于这是基本的示例代码,因此我假设它没有错误,但是当我尝试对其进行编译时,会收到以下错误消息。client_socket.connect((''localhost',5000)),第4行,文件“ client.py”,connect socket.error,第1行,文件:[Errno 111]连接被拒绝我已经在这个错误的几乎所有地方进行了搜索,遇到类似问题的人似乎可以通过更改端口号,使用“连接”而不是“绑定”以及其他一些方法来获得帮助,但这些都没有他们适用于我的情况。非常感谢任何帮助,因为我是网络编程的新手,而对于python则是新手。顺便说一下,这是防止链接由于任何原因而无法工作的代码。#client exampleimport socketclient_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;
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

它正在尝试连接到在端口5000上运行的计算机,但是连接被拒绝。您确定服务器正在运行吗?


如果没有,则可以netcat用于测试:


nc -l -k -p 5000

某些实现可能要求您省略该-p标志。


查看完整回答
反对 回复 2019-11-11
?
慕村225694

TA贡献1880条经验 获得超4个赞

这是一个非常简单的套接字程序。这与套接字获取一样简单。


用于客户端程序(CPU 1)


import socket


s = socket.socket()

host = '111.111.0.11' # needs to be in quote

port = 1247

s.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 socket


s = socket.socket()

host = socket.gethostname()

port = 1247

s.bind((host,port))

s.listen(5)

while True:

    c, addr = s.accept()

    print("Connection accepted from " + repr(addr[1]))


    c.send("Server approved connection\n")

    print repr(addr[1]) + ": " + c.recv(1026)

    c.close()

运行服务器程序,然后运行客户端程序。


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 485 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信