Ⅰ python 3socket.sendto函数怎么写
for i as byte=0 to 10 dim lab as new label lab.name="lab" & i lab.location=new point(0,i*20) lab.autosize= true lab.text=i panel1.controls.add(lab) next
Ⅱ 关于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了,或者域名。或者使用类似“花生壳”等软件,进行主机映射也可以
Ⅲ Python TCP通讯发送Byte出现数据里面多出一上字符是怎么回事
txt="\x27\x88",这个是由两个转义字符构成的字符串。
txt.encode()会使用utf-8编码方式将字符串编码为字节序列(bytes对象)。
utf-8编码的话,txt.encode()会返回3字节的字节序列:b'\x27\xc2\x88',因为对于字符'\x88',用utf-8编码后是2个字节b'\xc2\x88'。
所以,接收到的自然是3个字节的字节序列b'\x27\xc2\x88'。
要解码后才是原字符串,即:
b'\x27\xc2\x88'.decode()=='\x27\x88'的结果是True。
Ⅳ Python用socket传输文件,收到的文件大小不一样,求解答,谢谢
1.电脑已经搭建python环境
2.深入到需要传输的文件目录下,此处以分享 nemo-huiyuanfei 文件为例
3.在路径栏输入 cmd 按回车进入终端
4.输入命令 python -m SimpleHTTPServer 8090 按回车 (端口号可以任意,不用必须为8090)
5.在局域网中任意浏览器输入框输入 文件所在主机 IP + Port 即可访问此文件目录并下载 ()
6.点击需要下载的文件即可下载
7. 【注意】python3.X 的命令输入为 python -m http.server 8090
Ⅳ python socket客户端两收发的线程,发的线程为什么会阻塞收的县城
第一个循环错了。把第二个循环放在第一个循环里面。accept完了就收发数据,循环收发。收发完了,关闭了,就回到accept的等待状态
。
按你现在的逻辑是,accept完成后就一直等待,直到第二次accept
慢慢试验。建议你accept完成后建立一个线程,单独进行收发。
Ⅵ python的socket通信为什么会出现积极拒绝
要在WEB上远程管理客户端软件。那我们就仿路由器那种模式用SOCKET来解决吧。
做了个DEMO,本机测试OK,拿到别的机器上做服务器,提示由于目标机器积极拒绝,无法连接。
查询各种资料,有的说是端口没开,有的说是服务没开。
各种雾水啊!仔细一想,问题可能出在本机在局域网IP上,而不是用127.0.0.1。
更正代码后,问题解决。下面演示服务器端代码的关键部分。
protected void Listen()
{MessageBox.Show("start listening");
stringip = "";
System.Net.IPHostEntryIpEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
for (int i = 0; i != IpEntry.AddressList.Length; i++)
{if (!IpEntry.AddressList[i].IsIPv6LinkLocal)
{
ip= IpEntry.AddressList[i].ToString();
}
}
IPEndPointipend = new IPEndPoint(IPAddress.Parse(ip), 8000);
Socket sc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sc.Bind(ipend);
Socket acc;while (true)
{ sc.Listen(1);
acc= sc.Accept();
byte[] buff = new byte[1024];
intrecbyte = acc.Receive(buff, buff.Length, 0);if (recbyte == 0)break;
stringreciveval = "";
reciveval += Encoding.GetEncoding("gb2312").GetString(buff, 0, recbyte); string returnval = "开始升级";byte[] returnBy = Encoding.GetEncoding("gb2312").GetBytes(returnval);
acc.Send(returnBy, returnBy.Length, 0);}
acc.Close();
sc.Close();
}
public string sendMessage()
{
IPEndPointipend = new IPEndPoint(IPAddress.Parse("192.168.XXX.XXX"),8000);
Socket sc = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
sc.Connect(ipend); string message = "请升级软件";byte[] bt = Encoding.GetEncoding("gb2312").GetBytes(message);
sc.Send(bt,bt.Length,0);
byte[] rebuff = new byte[1024];
intrecive = sc.Receive(rebuff, rebuff.Length, 0);
stringreturnval = "";
returnval += Encoding.GetEncoding("gb2312").GetString(rebuff, 0, recive);
sc.Close();returnreturnval;}
Ⅶ python socket 的rev函数怎么接收字节数组
import socketimport structsock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(('localhost', 10000))values = (1, 'ab', 2.7)packer = struct.Struct('I 2s f')packed_data = packer.pack(*values)try: sock.sendall(packed_data)finally: sock.close()有个模块叫struct,可以自定义结构体,可以这样发送代码。
try: import cPickle as pickleexcept: import pickleclass AA(): def a(self): print "123"ddd = AA()data = pickle.mps(ddd)还有个模块叫pickle,可以打包任何python对象,打包的结果也可以拿到套接字里发。
Ⅷ python socket发送字符串问题
python3中binary string 和 string不能合在一起
s.send("%s\r\n" %data)
Ⅸ python socket 做了一个传文件的脚本 为什么在IDLE里运行没问题 但是双击直接打开就会抱错
>>>如果你没有在文件开头# encoding: utf-8,idle里面有设置默认编码的
>>>如果是在windows下面,而你的编码又是utf-8的话,那么你双击运行,如果含有中文是会报错的,因为windows(中文版本)的cmd的默认编码是gbk的,这个当然会出错了,所以解决办法是将文件保存为gbk或者gb18030或者cp936,在文件开头加上#_*_encoding:cp936_*_就可以了。
>>>如果是在linux下面的话,设置成utf-8的吧。
Ⅹ python socket 编程
字节序 是一个处理器架构特性,用于指示像整数这样的大数据类型内部的字节如何排序。
大端 (bing-endian)字节序,最大字节地址出现在最低有效字节(Least Significant Byte, LSB)上。
小端 (little-endian)字节序,最低有效字节包含最小字节地址。
不管字节如何排序,最高有效字节(Most Signification Byte, MSB)总是在左边,LSB总是在右边。
对于TCP/IP协议栈使用 大端 字节序。
有下面四个函数来转换字节序: