python
Linux下利用socket编程实现文件传输?
一、Linux下利用socket编程实现文件传输?
要下班了,时间急,不写代码了先给你一个思路
1 实现最简单的udp socket 模型,实现发送一个字符串。
2 实现一个简单的打开文件,读取文件的例子,如用fgets(),类似的函数有很多,然后再把读取的文件内容忘另一个文件里写(相关函数fopen(),write(),read())。
3 把上面两个函数结合到一起,在客户端实现打开要传送的文件,按一定的大小读取,读取后调用sendto()发送到服务器端。在服务器端创建一个文件,然后调用recvfrom()接受客户端发送过来的数据,向来是创建的那个文件中写。 下面是改好的udp发送文件的例子。服务器端程序的编译gcc -o file_server file_server客户端程序的编译gcc -o file_client file_client.c服务器程序和客户端程应当分别运行在2台计算机上.服务器端程序的运行,在一个计算机的终端执行./file_server客户端程序的运行,在另一个计算机的终端中执行./file_client 运行服务器程序的计算机的IP地址根据提示输入要传输的服务器上的文件,该文件在服务器的运行目录上在实际编程和测试中,可以用2个终端代替2个计算机,这样就可以在一台计算机上测试网络程序,服务器端程序的运行,在一个终端执行./file_server客户端程序的运行,在另一个终端中执行./file_client 127.0.0.1说明: 任何计算机都可以通过127.0.0.1访问自己. 也可以用计算机的实际IP地址代替127.0.0.1//////////////////////////////////////////////////////////////////////////////////////// file_server.c 文件传输顺序服务器示例////////////////////////////////////////////////////////////////////////////////////////本文件是服务器的代码#include
二、Python的socket模块中的bind?
accept_thread = threading.Thread(target=accept, args=(s, ))accept_thread.start()def accept(s): while True: conn, accept = s.accept() thread_send = MyThread(conn,addr) thread_recv = MyThread(conn,addr) thread_send.start() thread_recv.start()
三、python怎么建立socket服务端?
1首先先建立一个python文件,命名为 socket_server1.py2下面是相关的步骤图.3先导入相关的模块.并且定义相关的主机及端口.4完整的socket_server1.py文件.5设置好之后,通过命令提示符测试(进行测试.开始-----运行-----cmd)6先使用python 运行下刚刚的那个文件. >>python socket_server1.py7客户端直接使用telnet代替测试一下.>>telnet 127.0.0.1 100868然后在服务端的窗口上面会出现相关的客户端信息,在客户端的窗口上面,输入一个字符,服务器端会显示出来,并且客户端上面会返回一个大写的字符。9这个就是一个简单的 python的socket的服务器端了。只是测试,没有排错日志
四、socket文件传输为什么用TCP协议?
因为相对udp协议,tcp协议传输更可靠
五、多线程socket文件传输用VC怎么做?
发送端,将文件分成N份(如5),FILE1(0-a字节),FILE2(a-b字节),FILE3(b-c字节),FILE4(c-d字节),FILE5(d-文件长度)。 发送可以使用M个线程(如5),THREAD1负责发送FILE1,依次类推,发送的每个数据包包括如下内容:文件内容的长度,文件内容,文件内容起始点相对于整个文件的位置,文件内容相对于整个文件的位置。例如:文件A的总长度为100000字节,则可以先发送一个数据包给接收端,让其准备接收,接着发送 4000(长度),....(内容的二进制流),0(起始),4000(结束)。 接收端根据接收的包写文件即可。
http://www.vckbase.com/document/viewdoc/?id=448
看一下吧六、python报错socket未定义怎么改?
在Python中,如果出现了socket未定义的错误,可能是因为您没有正确导入socket模块。您可以通过以下方式解决此问题:
python
import socket
如果您已经导入了socket模块,但仍然出现socket未定义的错误,则可能是因为您的代码中存在语法错误或逻辑错误。在这种情况下,您可以尝试检查您的代码并修复任何错误。
如果您仍然无法解决问题,请提供更多关于您的代码和错误消息的信息,以便我可以更好地帮助您。
七、python中socket无法连接到本地,提示Connection refused?
如果您安装了最新的软件包v1.8.1
在发行说明中有一些说你需要chmod一个启动器文件
chmod +x /Users/_ENTER YOUR USERNAME_/Library/Application
Support/Sublime\ Text
3/Packages/OmniSharp/PrebuiltOmniSharpServer/omnisharp
八、python获取当前socket连接状态,是连接还是断开?
socket建立连接后,你可以在上面加一个超时,如果超时异常出现就是断开了。
另外可以用select(inlist,writelist,errorlist,timeout)的办法,去轮询它。超过比如60秒,就认为它超时。
在操作系统层面,你可以用netstat 找到这个socket连接,看它的TCP状态。如果到了CLOSE_WAIT, TIME_WAIT,就是对方或者是自己关闭了。 如果是FIN2.。。。SEN。。或者是SYN_XXX就是还是连接或者是发送状态中。
通常这些状态在操作系统的TCP协议里都设置有超时。如果超时过了,它自己会关闭。然后变成WAIT状态。
九、web socket和socket区别?
答:首先从二者的使用层面上就不同 Socket是传输控制层协议,WebSocket是应用层协议。 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口(不是协议,为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口)。
在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面。利用TCP/IP协议建立TCP连接。(TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。) WebSocket则是一个典型的应用层协议。
灵活运用的程度不同 WebSocket 更易用,而 Socket 更灵活。Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。 在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
主机A 的应用程序要能和主机 B 的应用程序通信,必须通过 Socket 建立连接,而建立 Socket 连接必须需要底层 TCP/IP 协议来建立 TCP 连接。建立 TCP 连接需要底层 IP 协议来寻址网络中的主机。
十、socket作用?
socket 用来写网络通讯程序的,简单来说在远程机器,和本地机器各建一个socket,然后进行连接通讯即可。 QQ什么的都网络通讯都是采用socket来写的。有兴趣的话看看网络编程(非Web网络编程)方面的书
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...