Chinaunix

标题: how to get socket name ? [打印本页]

作者: devel    时间: 2004-05-12 23:11
标题: how to get socket name ?
  1. #include <sys/types.h>;
  2. #include <sys/socket.h>;
  3. #include <netinet/in.h>;
  4. #include <stdio.h>;
  5. #include <stdlib.h>;
  6. int
  7. main(void)
  8. {
  9.         int                  sockfd;
  10.         struct sockaddr_in   AAaddr;
  11.         socklen_t               len;
  12.         if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) {
  13.                perror("create a stream socket error");
  14.                exit(1);
  15.         }
  16.         bzero(&AAaddr,sizeof(AAaddr));
  17.         AAaddr.sin_family=AF_INET;
  18.         AAaddr.sin_port=htons(13);
  19.         AAaddr.sin_addr.s_addr=htonl(9876);
  20.         len=sizeof(AAaddr);
  21.         if(getsockname(sockfd,(struct sockaddr *)&AAaddr,&len) != 0) {
  22.                perror(" get sock name error");
  23.                exit(1);
  24.         }
  25.         printf("sock name is %s\n",AAaddr.sa_data);
  26.         exit(0);
  27. }
复制代码
这是不成功的程序,就是 printf() 那里不行。。 不懂得怎么做,请帮忙,先谢过。。
struct sockaddr {
char sa_data[14] ; /* protocol -specific address */.
}
作者: windflowers1976    时间: 2004-05-13 07:36
标题: how to get socket name ?
  1. puts(inet_ntoa( AAaddr.sin_addr) );       
复制代码

作者: windflowers1976    时间: 2004-05-13 07:36
标题: how to get socket name ?
  1. puts(inet_ntoa( AAaddr.sin_addr) );       
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2