|
|
这是是我改的V4的,可执行的时候总是绑定错误,各位帮我看下呢!谢谢!
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define PORT 1234
#define BACKLOG 1
int main(void)
{
int listenfd, connectfd;
struct sockaddr_in6 server;
struct sockaddr_in6 client;
int sin_size;
static char str[128];
if((listenfd=socket(AF_INET6, SOCK_STREAM, 0))==-1)
{
perror("Create socket failed");
exit(-1);
}
int opt=SO_REUSEADDR;
setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
bzero(&server, sizeof(server));
server.sin6_family = AF_INET6;
server.sin6_port = htons(PORT);
server.sin6_addr=in6addr_any;
if (bind(listenfd, (struct sockaddr_storage *)&server, sizeof(struct sockaddr_storage))==-1)
{
perror("Bind error");
exit(-1);
}
if (listen(listenfd, BACKLOG) == -1)
{
perror("listen error");
exit(-1);
}
sin_size = sizeof(struct sockaddr_in6);
if ((connectfd = accept(listenfd, (struct sockaddr *)&client, &sin_size)) == -1)
{
perror("accept error");
exit(-1);
}
printf("you get a connection from %s\n", inet_ntop(AF_INET6,&client.sin6_addr,str,sizeof(str)));
send(connectfd,"welcome to my server\n",54, 0);
close(connectfd);
close(listenfd);
}
结果就这个样子!:
[root@localhost program]# ./server
Bind error: Invalid argument |
|