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

C语言网络编程遇到问题了,求高手帮助!

    来源: 互联网  发布时间:2017-01-31

    本文导语:  小弟是初学者,深知让前辈帮忙看代码是一件极其愚蠢,极其没良心的事,不过这小段代码小弟是反复琢磨了几万遍有了,还是找不出哪里出问题了阿。麻烦高手帮忙看看,代码也不长,是简单的客户端请求连接服务...

小弟是初学者,深知让前辈帮忙看代码是一件极其愚蠢,极其没良心的事,不过这小段代码小弟是反复琢磨了几万遍有了,还是找不出哪里出问题了阿。麻烦高手帮忙看看,代码也不长,是简单的客户端请求连接服务端,然后发送了 一个字符串过去,可是老连接失败啊,拜托拜托。。。。
服务端:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define portnumber 3333

void main()
{
struct sockaddr_in serve_sock ;
struct sockaddr_in client_sock;
int sockfd;
int new_sockfd;
char *s;

if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
printf("creat sock fail !n");
exit(1);
}
/*填写 sockaddr_in 的成员数据*/
bzero(&serve_sock,sizeof(struct sockaddr_in));   /*清 0 */
serve_sock.sin_family = AF_INET;                 /*设置协议为 IPV4*/
serve_sock.sin_port = htons(portnumber);         /*设置端口号为 3333*/
serve_sock.sin_addr.s_addr = htonl(INADDR_ANY);  /*设置IP为任意IP地址*/
if(bind(sockfd,(struct sockaddr *)(&serve_sock),sizeof(struct sockaddr)) == -1)  /*绑定*/
{
printf("bind sock fail!n");
exit(1);
}
if(listen(sockfd,5) == -1) /*设置最大连接数为5*/
{
printf("listen sock fail!n");
exit(1);
}
while(1)
{
if((new_sockfd = accept(sockfd,(struct sockaddr *)(&client_sock),sizeof(struct sockaddr_in))) == -1)  /*堵塞,等待连接请求*/
{
printf("accept fail!n");
exit(1);
}
printf("connect from the client process successfully!n");
read(new_sockfd,s,1024);  /*读取客户端程序发送来的字符串*/
printf("read the string %sn",s);   /*将字符串打印出来*/
close(sockfd);            /*关闭本次连接*/
}
}




客户端:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define portnumber 3333

void  main(int argc,char *argv[])
{
struct sockaddr_in client_sock;
struct hostent *host;
int fd;
char *s;

if((host=gethostbyname(argv[1]))==NULL)  /*通过命令行参数传进来的ip地址获取 hostent 变量*/
 {
  fprintf(stderr,"Gethostname errorn");
  exit(1);
 }
if(fd = socket(AF_INET,SOCK_STREAM,0) == -1)
{
printf("creat socket fail!n");
exit(1);
}
bzero(&client_sock,sizeof(client_sock));    /*填写各所需参数*/
client_sock.sin_family = AF_INET;
client_sock.sin_port = htons(portnumber);
client_sock.sin_addr=*((struct in_addr *)host->h_addr);  /*设置远程 IP ,通过 hostent 变量获得 h->addr*/

if(connect(fd,(struct sockaddr *)(&client_sock),sizeof(struct sockaddr)) == -1) /*连接请求*/
{
printf("connet fail!n");        /***执行失败了,我执行的时候打印出 connet fail!,我不解为什么连接失败啊,反复查了好几遍了还是没有看出来***/
exit(1);
}
printf("connet from the serve successfully!n");
printf("please inpu :");
scanf("%s",s);
close(fd);
}




|
客户端
if(fd = socket(AF_INET,SOCK_STREAM,0) == -1)

漏括号了。。
if((fd = socket(AF_INET,SOCK_STREAM,0)) == -1)

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












  • 相关文章推荐
  • 2013年7月和2013年8月编程语言排行榜
  • 动态编程语言 LIME编程语言
  • 苹果OS X和IOS下最新编程语言swift介绍
  • kliyx是使用C++语言编程的,还是用C语言编程的?
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • 编程语言可扩展框架 LayerD
  • PHP编程语言介绍及安装测试方法
  • 脚本编程语言 Crack
  • 一个小问题。Linux下编程语言的问题。
  • 基于JVM的编程语言 Golo
  • UNIX下的编程语言有那些?
  • 并发编程语言 JR
  • SAC函数式编程语言
  • 编译型编程语言 eC
  • 基于Java的新编程语言 Jabaco
  • 编程语言 Seed7
  • 实时 3D 应用编程语言 Tao3D
  • 即时运行的编程语言 Circa
  • 脚本编程语言 Crack iis7站长之家
  • 在AIX和UNIX上可以使用什么编程语言?
  • Web 编程语言 Wyvern
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 如何在GTK2.0下实现国际化(语言选择根据自己设置的语言,不用系统的语言)
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • c语言实现MD5算法完整代码示例
  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • 以NetBeans IDE为例介绍如何使用XML中Schema语言
  • C语言中间语言 CIL
  • c语言基于libpcap实现一个抓包程序过程
  • 最近学JSP,苦于HTML语言和JAVA语言太差,请教推荐几本书,thanks.


  • 站内导航:


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

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

    浙ICP备11055608号-3