×

c利用tcp传输文件

c利用tcp传输文件(tcp 传输文件)

admin admin 发表于2023-03-28 12:03:10 浏览51 评论0

抢沙发发表评论

本文目录一览:

C语言编写TCP的文件传输

参考下面代码

#include winsock2.h #include stdio.h #include stdlib.h

#pragma comment(lib,"ws2_32.lib") #define DEFAULT_PORT 2302 #define DEFAULT_BUFFER 2048 -c利用tcp传输文件

#define DEFAULT_MESSAGE "This is a test of the emergency \ broadcasting system" char szServerip[128], // Server to connect to szMessage[1024]; // Message to send to sever -c利用tcp传输文件

int iPort = DEFAULT_PORT; // Port on server to connect to

//DWORD dwCount = DEFAULT_COUNT; // Number of times to send message BOOL bSendOnly = FALSE; // Send data only; don't receive int dirfun(); -c利用tcp传输文件

var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;

int getfun(); int putfun(); int pwdfun(); int cdfun(); int mdfun(); int delfun(); int usafun();

void usage() {

printf("usage: client [-p:x] [-s:IP] [-n:x] [-o]\n\n"); printf(" -p:x Remote port to send to\n"); -c利用tcp传输文件

printf(" -s:IP Server's IP address or hostname\n"); printf(" -n:x Number of times to send message\n"); printf(" -o Send messages only; don't receive\n"); ExitProcess(1); } -c利用tcp传输文件

void ValidateArgs(int argc, char **argv) {

int i;

for(i = 1; i argc; i++) {

if ((argv[i][0] == '-') || (argv[i][0] == '/')) {

switch (tolower(argv[i][1])) {

case 'p': // Remote port if (strlen(argv[i]) 3) iPort = atoi(argv[i][3]); break; -c利用tcp传输文件

case 's': // Server if (strlen(argv[i]) 3)

strcpy(szServerip, argv[i][3]); break;

case 'n': // Number of times to send message if (strlen(argv[i]) 3) -c利用tcp传输文件

//dwCount = atol(argv[i][3]); break;

case 'o': // Only send message; don't receive bSendOnly = TRUE; break; default: usage();-c利用tcp传输文件

VC如何将串口返回的数据通过TCP/IP发送出去

之所以会慢一拍是因为下面两行

SerialSendData(m_strEditSendData);//变量被更新,但控件内容未变化

m_ctrlEditPortData.GetWindowText(str);//要不然UpdateData(FALSE)不就没用了?

Linux C系统编程中的文件传输问题:只能传送文本文件,不能传送二进制文件。(TCP+文件I/O实现)

二进制模式传输文本文件没有问题,但是ASCII模式传输二进制文件会出问题

因为有些控制字符会被错误处理。比如二进制文件中的0,在传输的时候会被当作字符串结束符,这样是无法传送的。所以传输二进制文件的时候状况与文本文件是不一样的。

C和 JAVA 能进行传输文件吗

能,直接通过tcp就可以了,最近刚好用zeromq做了一个由java传输一个json格式的字节到C++项目里转换成C++对象处理,再返回个Java。C++和C的zeromq配置是相差不大的。

TCP如何进行数据传输?

1、作好编程准备,包括后面要用的头文件,以及一些变量的定义。

2、在终端界面上显示提示信息,告诉TCP运行后的结果,如传送完成、传送了多少字节、速度是多少等。

3、提示客户端用法,如何从键盘输入数据,用什么格式输入,打开套接字,为传送的字节分配内存。

4、用connect函数,指定字节数,时间和遵从的协议。传送完毕,关闭套接字。

5、打开侦听函数,并且等待接收来自客户端的TCP数据。

6、接收完毕,关闭套接字,并且在屏幕显示传输结果。

注意事项:

TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。

如何用tcpudp测试工具传输文件

划分为使用TCP端口(面向连接如打电话)和使用UDP端口(无连接如写信)两种。网络中可以被命名和寻址的通信端口是操作系统的一种可分配资源。由网络OSI(开放系统互联参考模型,OpenSystemInterconnectionReferenceModel)七层协议可知,传输层与网络层最大的区别是传输层提供进程通信能力,网络通信的最终地址不仅包括主机地址,还包括可描述进程的某种标识。所以TCP/IP协议提出的协议端口,可以认为是网络通信进程的一种标识符。应用程序(调入内存运行后一般称为:进程)通过系统调用与某端口建立连接(binding,绑定)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都从该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写方式访问类似于文件描述符,每个端口都拥有一个叫端口号的整数描述符,用来区别不同的端口。由于TCP/IP传输层的TCP和UDP两个协议是两个完全独立的软件模块,因此各自的端口号也相互独立。如TCP有一个255号端口,UDP也可以有一个255号端口,两者并不冲突。端口号有两种基本分配方式:第一种叫全局分配这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(binding,绑定)。TCP/IP端口号的分配综合了以上两种方式,将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。每一个标准服务器都拥有一个全局公认的端口叫周知口,即使在不同的机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。TCP和UDP规定,小于256的端口才能作为保留端口。按端口号可分为3大类:(1)公认端口(WellKnownPorts):从0到1023,它们紧密绑定(binding)于一些服务。通常这些端口的通讯明确表明了某种服务的协议。例如:80端口实际上总是HTTP通讯。(2)注册端口(RegisteredPorts):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。(3)动态和/或私有端口(Dynamicand/orPrivatePorts):从49152到65535。理论上,不应为服务分配这些端口。实际上,机器通常从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。系统管理员可以"重定向"端口:一种常见的技术是把一个端口重定向到另一个地址。例如默认的HTTP端口是80,不少人将它重定向到另一个端口,如8080。如果是这样改了,要访问本文就应改用这个地址.cn:8080。端口漏洞:8080端口可以被各种病毒程序所利用,比如BrownOrifice(BrO)特洛伊木马病毒可以利用8080端口完全遥控被感染的计算机。另外,RemoConChubo,RingZero木马也可以利用该端口进行攻击。操作建议:一般我们是使用80端口进行网页浏览的,为了避免病毒的攻击,我们可以关闭该端口。端口:21服务:FTP说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马DolyTrojan、Fore、InvisibleFTP、WebEx、WinCrash和BladeRunner所开放的端口。端口:22服务:Ssh说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。端口:23服务:Telnet说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马TinyTelnetServer就开放这个端口。端口:25服务:SMTP说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、EmailPasswordSender、HaebuCoceda、ShtrilitzStealth、WinPC、WinSpy都开放这个端口。端口:80服务:HTTP说明:用于网页浏览。木马Executor开放此端口。端口:102服务:Messagetransferagent(MTA)-X.400overTCP/IP说明:消息传输代理。端口:109服务:PostOfficeProtocol-Version3说明:POP3服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。端口:110服务:SUN公司的RPC服务所有端口说明:常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等端口:119服务:NetworkNewsTransferProtocol说明:NEWS新闻组传输协议,承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送SPAM。端口:135服务:LocationService说明:Microsoft在这个端口运行DCERPCend-pointmapper为它的DCOM服务。这与UNIX111端口的功能很相似。使用DCOM和RPC的服务利用计算机上的end-pointmapper注册它们的位置。远端客户连接到计算机时,它们查找end-pointmapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行ExchangeServer吗?什么版本?还有些DOS攻击直接针对这个端口。端口:137、138、139服务:NETBIOSNameService说明:其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINSRegisrtation也用它。端口:161服务:SNMP说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络端口:177服务:XDisplayManagerControlProtocol说明:许多入侵者通过它访问X-windows操作台,它同时需要打开6000端口。端口:389服务:LDAP、ILS说明:轻型目录访问协议和NetMeetingInternetLocatorServer共用这一端口。限制端口防非法入侵[分享]一般来说,我们采用一些功能强大的反黑软件和防火墙来保证我们的系统安全,本文拟用一种简易的法——通过限制端口来帮助大家防止非法入侵。非法入侵的方式简单说来,非法入侵的方式可粗略分为4种:1、扫描端口,通过已知的系统Bug攻入主机。2、种植木马,利用木马开辟的后门进入主机。3、采用数据溢出的手段,迫使主机提供后门进入主机。4、利用某些软件设计的漏洞,直接或间接控制主机。非法入侵的主要方式是前两种,尤其是利用一些流行的黑客工具,通过第一种方式攻击主机的情况最多、也最普遍;而对后两种方式来说,只有一些手段高超的黑客才利用,波及面并不广泛,而且只要这两种问题一出现,软件服务商很快就会提供补丁,及时修复系统。对于个人用户来说,您可以限制所有的端口,因为您根本不必让您的机器对外提供任何服务;而对于对外提供网络服务的服务器,我们需把必须利用的端口(比如WWW端口80、FTP端口21、邮件服务端口25、110等)开放,其他的端口则全部关闭。这里,对于采用Windows2000或者WindowsXP的用户来说,不需要安装任何其他软件,可以利用“TCP/IP筛选”功能限制服务器的端口。具体设置如下:1、右键点击“网上邻居”,选择“属性”,然后双击“本地连接”(如果是拨号上网用户,选择“我的连接”图标),弹出“本地连接状态”对话框。2、点击[属性]按钮,弹出“本地连接属性”,选择“此连接使用下列项目”中的“Internet协议(TCP/IP)”,然后点击[属性]按钮。3、在弹出的“Internet协议(TCP/IP)”对话框中点击[高级]按钮。在弹出的“高级TCP/IP设置”中,选择“选项”标签,选中“TCP/IP筛选”,然后点击[属性]按钮。4、在弹出的“TCP/IP筛选”对话框里选择“启用TCP/IP筛选”的复选框,然后把左边“TCP端口”上的“只允许”选上。这样,您就可以来自己添加或删除您的TCP或UDP或IP的各种端口了。添加或者删除完毕,重新启动机器以后,您的服务器就被保护起来了。最后,提醒个人用户,如果您只上网浏览的话,可以不添加任何端口。但是要利用一些网络联络工具,比如OICQ的话,就要把“4000”这个端口打开,同理,如果发现某个常用的网络工具不能起作用的时候,请搞清它在您主机所开的端口,然后在“TCP/IP“里把此端口打开以上来源于网络,不过分析得很好了相同点:都处于传输层不同点:TCP~面向连接、可靠、传输慢、保证数据的顺序UDP~面向无连接、不可靠、传输快、数据按照不同路径到,不保证数据顺序且两者传输的模式不一样-c利用tcp传输文件