菜鸟求教一个关于python socket的问题
情况时这样,最近刚学python,一直使用的文本编辑,在学到socket时自己尝试写了一个小脚本,部分语句如下: import socketself.service=socket.socket(socket.AF_INET,socket.SOCK_STREAM)python 运行无错最近又发现,原来eclipse是有python扩展包的,于是尝试把自己写的东西放到eclipse中运行,然后就报错了:self.service=socket.socket(socket.AF_INET,socket.SOCK_STREAM)AttributeError: 'module' object has no attribute 'AF_INET'ctrl+左键放到AF_INET提示此值存放在_socket下,于是有以下尝试:import socketimport _socketprint _socket.AF_INET #无报错,返回2print socket.AF_INET #报错于是修改了脚本import _socket as socket我的脚本运行正常首先,我系统的环境使用的时python2.6,eclipse中,windows-》preferences-》interpreter - python这里面的lib包(指向/usr/bin/python2.6),与我在终端的输出sys.path输出的值时一样的然后,我的问题:1,是不是在python中有两个模块,一个叫socket,一个叫_socket?2,为什么在终端执行,可以直接import socket.AF_INET,而在eclipse中则需要import _socket?可能你的测试脚本或当前路进下有其他脚本也叫socket,优先被载入造成错误,试试import后立刻打印路径看看是不是标准的那个...>>> import socket>>> print socket.__file__C:Python27libsocket.pyc >>>

请教一个关于python socket的问题
代码如下: Python code?123456789101112131415161718192021222324252627282930313233#!/usr/bin/python from socket import socket, AF_INET, SOCK_STREAMfrom threading import Thread port = 50008host = 'localhost' def server():sock = socket(AF_INET, SOCK_STREAM)sock.bind(('', port))sock.listen(5)while True:conn, addr = sock.accept()data = conn.recv(1024)reply = 'server got: [%s]' % dataconn.send(reply.encode()) def client(name):sock = socket(AF_INET, SOCK_STREAM)sock.connect((host, port))sock.send(name.encode())reply = sock.recv(1024)sock.close()print('client got: [%s]' % reply) if __name__ == '__main__': sthread = Thread(target=server)sthread.daemon = Truesthread.start()for i in range(5):Thread(target=client, args=('client%s' % i,)).start()在ubuntu下运行,报下面的异常信息:Exception in thread Thread-2:Traceback (most recent call last):File "/usr/lib/python3.2/threading.py", line 740, in _bootstrap_innerself.run()File "/usr/lib/python3.2/threading.py", line 693, in runself._target(*self._args, **self._kwargs)File "./socket_test.py", line 21, in clientsock.connect((host, port))socket.error: [Errno 111] Connection refused把socket绑定的端口改为5000后,就没有异常。求指点!谢谢!client got: [server got: [client1]]client got: [server got: [client0]]client got: [server got: [client2]]client got: [server got: [client3]]client got: [server got: [client4]]我这正常的,你那是不是有两个服务器同时开了?把原来那个杀掉。 是因为端口被占用了吗?

python中使用socket编程,如何能够通过UDP传递一个列表类型的数据?
Python中的 list 或者 dict 都可以转成JSON字符串来发送,接收后再转回来。首先import json然后,把 list 或 dict 转成 JSONjson_string = json.dumps(list_or_dict)如果你用的是Python3,这里的 json_string 会是 str 类型(即Python2的unicode类型),可能需要编码一下:if type(json_string) == six.text_type:json_string = json_string.encode('UTF-8')用socket发送过去,例如s.sendto(json_string, address)对方用socket接收,例如json_string, addr = s.recvfrom(2048)把JSON转成 list 或 dictlist_or_dict = json.loads(json_string)下面是个完整的例子:client.py#!/usr/bin/env python# -*- coding: UTF-8 -*- import socketimport jsonimport six address = ('127.0.0.1', 31500)s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)mylist = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]json_string = json.dumps(mylist)if type(json_string) == six.text_type: json_string = json_string.encode('UTF-8')s.sendto(json_string, address)s.close()server.py#!/usr/bin/env python# -*- coding: UTF-8 -*- import socketimport json address = ('127.0.0.1', 31500)s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.bind(address)json_string, addr = s.recvfrom(2048)mylist = json.loads(json_string)print(mylist)s.close()请先运行server.py,再运行client.py
UDP不适合传输很大的数据包。

Python中 socket 和 Queue有什么区别
socket(计算机专业术语):网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。 queue(线性表):队列是一种特殊的线性表,是一种先进先出(FIFO)的数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。而其在C++中的应用语法:queue类是为程序员提供了一个队列的功能的容器适配器,具体而言,一个FIFO(先入先出)的数据结构;在头文件中定义(在程序开头输入#include ,切记不可写为#include )。 望采纳

关于Python中socket问题。
HOST='localhost'#如果要两台电脑远程通讯,这里应该绑定什么? 所谓host,就是主机地址。本地使用 'localhost' 会被映射为 '127.0.0.1'的,也就是本机。不同主机相互通信呢?直接使用 局域网地址即可。比如 (本机)192.168.1.2(其他电脑)192.168.1.3 然后本机做主机:HOST='192.168.1.2'换句话说:客户端的机器 必须能够连接 主机。 在(其他电脑) "ping 192.168.1.2" 必须能ping通。 那么 不在同一个局域网的怎么办?那就必须使用 外网IP了,或者域名。或者使用类似“花生壳”等软件,进行主机映射也可以

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/66879.html。