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

socket编程的基础问题。

    来源: 互联网  发布时间:2015-07-19

    本文导语:  我正在学习linux网络编程,现在碰到一个socket的问题。找了一个例子,代码如下,用gcc编译时老是提示 client.c:50: dereferencing pointer to incomplete type,请问是什么原因?该怎么解决?       1       2 /******客户端...

我正在学习linux网络编程,现在碰到一个socket的问题。找了一个例子,代码如下,用gcc编译时老是提示
client.c:50: dereferencing pointer to incomplete type,请问是什么原因?该怎么解决?

      1
      2 /******客户端程序******/
      3
      4 #include 
      5 #include 
      6 #include 
      7 #include 
      8 #include 
      9 #include 
     10
     11 int main(int argc, char argv[])
     12 {
     13 int sockfd;
     14 char buffer[1024];
     15 struct sockaddr_in server_addr;
     16 struct hostent *host;
     17 int portnumber, nbytes;
     18
     19 if(argc!=3)
     20 {
     21 fprintf(stderr, "Usage:%s hostname portnumberan", argv[0]);
     22 exit(1);
     23 }
     24
     25 /**获得主机名**/
     26 if((host=gethostbyname(argv[1]))==NULL)
     27 {
     28 fprintf(stderr, "Gethostname errorn");
     29 exit(1);
     30 }
     31
     32 /**获得端口号**/
     33 if((portnumber=atoi(argv[2]))h_addr);
     51
     52 /**客户程序发起连接请求**/
     53 if(connect(sockfd, (struct sockaddr*)(&server_addr), sizeof(struct sockaddr))==-1)
     54 {
     55 fprintf(stderr, "Connect Error:%san", strerror(errno));
     56 exit(1); 
     57 }
     58
     59 /**连接成功了**/
     60 if((nbytes=read(sockfd, buffer, 1024))==-1)
     61 {
     62 fprintf(stderr, "Read Error:%sn", strerror(errno));
     63 exit(1);
     64 }
     65 buffer[nbytes]='';
     66 printf("I have received:%sn",buffer);
     67
     68 /**结束通讯**/
     69 close(sockfd);
     70 exit(0);
     71 }

|
main声明的argv应该为char *argv[]
同时你include的头文件也缺了一个,把#include 加上!
btw:我已经调试成功了你的代码。


|
server_addr.sin_addr.s_addr=inet_addr(host->h_addr);

|
try server_addr.sin_addr.s_addr =((struct in_addr *)host->h_addr)->s_addr;

|
楼上的对

    
 
 

您可能感兴趣的文章:

  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 大家帮忙推荐一本linux socket编程的入门书,我刚接触socket,谢谢!!
  • IOS开发之socket网络编程(基于SimpleNetworkStreams的c/s程序)
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • Linux c socket编程:简单的客户端(client)和服务端(server)实现
  • socket 编程时,write的写入的数据大于socket缓冲区,会有什么结果??
  • Linux下使用openssl api编程socket编程,为什么要编译啊?
  • 关于文件操作和Socket网络编程!
  • linux下socket编程问题!
  • socket编程 中的bind问题
  • socket编程--htons
  • 急!!请教关于linux socket编程的一个问题!!
  • 急!关于SOCKET编程,在线等待!
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • 多进程socket编程问题
  • 问一个socket编程问题,急~~~
  • 求教!为何在socket编程中调recv函数无法阻塞?
  • 请教一个socket编程问题
  • 求助!!linux下socket编程
  • socket编程,使用recvfrom()函数监听问题。
  • sco unix下socket编程的问题,请大家帮忙
  • Java网络编程基础教程之Socket入门实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux socket问题。。怎样获得已帮定特定port的一个套接字socket
  • 关于socket概念的理解问题!
  • 你是否可以回答Socket的问题?数据先后问题
  • Socket的问题
  • socket accept问题,大家指教。
  • socket客户端程序的问题
  • 关于多网口socket通信的简单问题
  • fgets用在SOCKET流上的问题
  • linux socket fd 写阻塞问题
  • linux下用socket实现多进程间通信问题?
  • 请教:多线程使用同一个socket进行数据收发会出现什么问题?
  • 请问socket方面的问题
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • windows 与 linux socket 编程问题
  • 问个linux下raw socket的问题
  • Socket的问题?
  • 关于socket通讯的一个问题
  • socket read返回问题
  • 奇怪问题,关于Socket的!
  • C++ socket挂钩问题
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • socket 通讯开发包 Simple Sockets
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • C++ Socket 库 C++ Sockets
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍


  • 站内导航:


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

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

    浙ICP备11055608号-3