LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: luoyong

我的这两段socket程序无法连接

[复制链接]
发表于 2004-5-8 16:01:16 | 显示全部楼层

回复: 我的这两段socket程序无法连接

最初由 luoyong 发表
server.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main()
{
  int i,sz,*buf;
  short s,port=123;//,port是端口号//port是16位的
  struct sockaddr_in sa;
  sz=sizeof(sa);//sockaddr_in的长度
  sa.sin_family=AF_INET;
  sa.sin_addr.s_addr=htonl(INADDR_ANY);
  sa.sin_port=htons(port);

  s=socket(PF_INET,SOCK_STREAM,0);
  bind(s,(struct sockaddr*)&sa,sz);
  listen(s,1);
  printf("%d\n",i);//显示0
  accept(s,(struct sockaddr *)&sa,&sz);
  sz=recv(s,buf,1024,0);
  write(0,buf,sz);
  return 0;
}





client.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main()
{
  int s,i;
  short port=123;//端口
  s=socket(PF_INET,SOCK_STREAM,0);

  struct sockaddr_in sa;
  sa.sin_family=AF_INET;
  sa.sin_addr.s_addr=inet_addr("192.168.0.1");
  sa.sin_port=htons(port);

  i=connect(s,(struct sockaddr *)&sa,sizeof(sa));
  printf("%d\n",i);//在这里总是显示-1
  return 0;
}

我的机器IP就是192.168.0.1
多谢了!!!
发表于 2004-5-8 16:02:15 | 显示全部楼层

呵呵

原来你已经发现了这个问题
 楼主| 发表于 2004-5-8 16:03:37 | 显示全部楼层
呵呵
:thank
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表