当前位置:  技术问答>linux和unix

TCP/IP程序中 字符串的问题

    来源: 互联网  发布时间:2015-10-08

    本文导语:  本人正在做一个TCP/IP程序,程序向服务器发出HTTP请求,取得返回内容,目的是测试自己的网站。由终端输入字符串,发送到服务器,之后服务器可返回请求文件的内容。下面一段程序是可以正常运行的,但是对要发...

本人正在做一个TCP/IP程序,程序向服务器发出HTTP请求,取得返回内容,目的是测试自己的网站。由终端输入字符串,发送到服务器,之后服务器可返回请求文件的内容。下面一段程序是可以正常运行的,但是对要发送的字符串进行初始化定义,直接发送则不可以,服务器未返回内容。

void str_cli(FILE *fp, int sockfd) /*由终端输入字符串,发送到服务器*/
{
char sends[MAXSIZE], recvs[MAXSIZE];
int n=0;
while ( fgets(sends,MAXSIZE,fp)!= NULL)
{
send(sockfd,sends,strlen(sends),0);
printf("nsends --->%s",sends);
if ( (n=recv(sockfd,recvs,MAXSIZE,0)) == 0 )
{
printf("nerror receiving data");
exit(1);
}
recvs[n]=0;
fputs(recvs,stdout);
}
}

主程序中建立连接后 str_cli(stdin,sockfd);
程序操作: myclient localhost 80
建立连接后输入 GET /index.html
程序返回index.html文件内容。

之后把str_cli中的字符串进行初始化,发送给服务器。
void str_cli(FILE *fp, int sockfd) /*由终端输入字符串,发送到服务器*/
{
char sends[MAXSIZE], recvs[MAXSIZE];
char pp[MAXSIZE]="GET /index.html";
int n=0;
while ( fgets(sends,MAXSIZE,fp)!= NULL)
{
send(sockfd,pp,strlen(pp),0);

printf("nsends --->%s",sends);
if ( (n=recv(sockfd,recvs,MAXSIZE,0)) == 0 )
{
printf("nerror receiving data");
exit(1);
}
recvs[n]=0;
fputs(recvs,stdout);
}
}
结果程序的反应是未出现页面结果,而是等待下一步的输入。
如果采用strcpy(sends,pp) 把sends拷贝到pp中,则程序运行正确。
那么由终端输入的字符串与自己编写的字符串是否有某些区别,为什么会有这样的结果。
还请指教,THANKS.

|
那肯定不行啦
字符串后+ rnrn

|
估计你前面传给fp的stdin,所以在fgets(sends,MAXSIZE,fp)这里就是要你在command line输入字符发给服务器,所以等待下一步输入很正常啊,输入结束用Ctrl+D

|
是你没明白HTTP协议,写出的程序当然不对

|
HTTP协议的要求是每一个请求要以"rn"结尾才行……

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何在Linux系统上运行T/TCP程序
  • TCP数据流抓取程序 tcpflow
  • 关于 tcp 通讯的程序 高分赠送
  • 请问:哪里可以下tcp/ip详解书上程序的源码
  • ubuntu下tcp程序问题
  • TCP程序非正常退出
  • linux TCP通信程序 本地进程被对方强制退出
  • Linux Kernel/Network 技术QQ群14888802,只加有内核开发、TCP/IP协议栈开发的程序员,不加新手和做应用开发的程序员。
  • c编写的tcp服务程序 文件描述符一直增加 怎么办???
  • tcp_prequeue_process怎么调用了tcp_v4_do_rcv的??求解??在tcp_recvmsg调用的 iis7站长之家
  • DOS 网络开发包和源程序: Microsoft TCP/IP Sockets Development Kit 1.0 for dos & windows ,大家可以去下载了
  • 在linux下面,为什么TCP服务器端在客户端没有断开前推出程序会关不掉socket?
  • linux编程设计:如何实时监控并统计应用程序通过linux服务器各端口的流量,以及显示及时速率,源IP,目的IP,类型(TCP、UDP、FTP、HTTP等)?
  • 求linux下socket编程(tcp)实现文件传送的源程序
  • 请问:TCP程序为何有时会丢包,请各位大哥指点
  • .Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用
  • TCP服务端程序意外重启后,客户端连接不上的问题求解
  • win2003应用程序日志-状态服务器已关闭超时的 TCP/IP 连接的解决方法
  • 我编写了一段基于TCP通信的server程序,遇到了一个问题,急!
  • tcp/ip上的sock程序问题
  • java命名空间java.net接口socketoptions的类成员方法: tcp_nodelay定义及介绍
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • Linux内核中影响tcp三次握手的一些协议配置
  • 100分求《嵌入式系统Web服务器—TCP/IP Lean》或《TCP/IP Lean Web Servers for Embedded Systems 》
  • TCP协议报头字段详解及报头图
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • 对TCP协议状态及状态转换理解
  • tcp_prequeue_process怎么调用了tcp_v4_do_rcv的??求解??在tcp_recvmsg调用的
  • TCP协议四次断连过程介绍及Linux内核协议栈中相关设置项
  • 请问怎么知道每个TCP连接所属哪个进程??还有怎么样断开系统中任意一个TCP连接?
  • TCP协议三次握手过程详解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3