用户操作
[即时聊天] [发私信] [加为好友]
杨庆林ID:Young_Davinci
199次访问,排名2万外,好友3人,关注者5人。
爱好廖廖
Young_Davinci的文章
原创 4 篇
翻译 0 篇
转载 0 篇
评论 0 篇
最近评论
文章分类
收藏
    相册
    自己的相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 建立socket连线时出现的问题收藏

    新一篇: 关于JavaScript取得终端的用户名和机器名信息 | 旧一篇: Date类和Calendar类相互转化的问题

    在编写C语言socket程序时,程序如下:

              /* 利用socket的TCP client
            * 此程序会连线TCP server,并将键盘输入的字符串传送给server。
            * TCP server范例请参考listen()。
            * */
           #include<sys/stat.h>
           #include<fcntl.h>
           #include<unistd.h>
           #include<sys/types.h>
           #include<sys/socket.h>
          #include<netinet/in.h>
          #include<arpa/inet.h>
          #define PORT 1234
          #define SERVER_IP "127.0.0.1"
          main()
          {
              int s;
              struct sockaddr_in addr;
              char buffer[256];
              if((s = socket(AF_INET,SOCK_STREAM,0))<0)
              {
                  perror("socket");
                  exit(1);
              }
              /* 填写sockaddr_in结构*/
              bzero(&addr,sizeof(addr));
              addr.sin_family = AF_INET;
              addr.sin_port=htons(PORT);
              addr.sin_addr.s_addr = inet_addr(SERVER_IP);
              /* 尝试连线*/
              if(connect(s,(struct sockaddr*)&addr,sizeof(addr))<0)
              {
                  perror("connect");
                  exit(1);
              }
              /* 接收由server端传来的信息*/
              recv(s,buffer,sizeof(buffer),0);
              printf("%s\n",buffer);
              while(1)
              {
                  bzero(buffer,sizeof(buffer));
                  /* 从标准输入设备取得字符串*/
                  read(STDIN_FILENO,buffer,sizeof(buffer));
                  /* 将字符串传给server端*/
                  if(send(s,buffer,sizeof(buffer),0)<0)
                  {
                      perror("send");
                      exit(1);
                  }
              }
          }

    编译的时候出现如下警告:warning: passing arg 2 of `connect' from incompatible pointer type

    后来将connect(s,&addr,sizeof(addr))修改为connect(s,(struct sockaddr*)&addr,sizeof(addr))就没有问题了。可能是没有引入这个结构体。

    发表于 @ 2008年05月22日 16:04:00|评论(loading...)|编辑

    新一篇: 关于JavaScript取得终端的用户名和机器名信息 | 旧一篇: Date类和Calendar类相互转化的问题

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © Young_Davinci