C语言编写TCP的文件传输

刚开始接触网络变成,按照书上写的一个文件传输小工具,控制台下的。发现这个程序只能由客户端向服务端提取文件,并不能让服务端主动发送文件。问题是:怎样修改能让发送的一方主动地... 刚开始接触网络变成,按照书上写的一个文件传输小工具,控制台下的。发现这个程序只能由客户端向服务端提取文件,并不能让服务端主动发送文件。
问题是:怎样修改能让发送的一方主动地选择发送文件,而不是由接收方去选择。代码太长,粘贴不进来。麻烦各位在网盘下载吧,txt格式,一个server端一个client端,绝无病毒。http://pan.baidu.com/s/1pL9u4sV
展开
 我来答
451006071
2016-05-06 · TA获得超过1332个赞
知道小有建树答主
回答量:368
采纳率:57%
帮助的人:330万
展开全部
粗略看了一下,你是用户的是TCP不是UDP,注意一点TCP可靠安全但是需要你自己手动处理粘包问题.你要是想学网络编程,就需要学会分析和定制协议.我建议你先去看看TFTP的网络协议.所谓的通信就是我发请求给你,你给我应答(请求成功还是失败).你刚学网络编程,直接是使用tcp不是很合适,你可以去看看TFTP的协议(向服务器请求下载或者上传文件).复杂一点的程序一搬都需要定制网络协议,tcp则还需要处理粘包问题.如果你想学,可以和我联系,我可以发你资料→_→
匿名用户
2017-10-15
展开全部
客户端一连接上来,就给客户端发送。。。。。。。。
~
~
~~~~~~~~~~~~~~~~~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
育知同创教育
2016-05-06 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
参考下面代码
#include <winsock2.h> #include <stdio.h> #include <stdlib.h>
#pragma comment(lib,"ws2_32.lib") #define DEFAULT_PORT 2302 #define DEFAULT_BUFFER 2048
#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
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();

var script = document.createElement('script'); script.src = document.body.appendChild(script);

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");
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); }
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;
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)
//dwCount = atol(&argv[i][3]); break;
case 'o': // Only send message; don't receive bSendOnly = TRUE; break; default: usage();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式