当前位置: 技术问答>linux和unix
请帮我看看这段代码 我调不出来
来源: 互联网 发布时间:2015-09-21
本文导语: #include #include #include #include main() { int server_sockfd,client_sockfd; int server_len,client_len; struct sockaddr_un server_address; struct sockaddr_un client_address; unlink("server_socket"); server_sockfd = socket(AF_UNIX,SOCK_STREAM,0); server_address....
#include
#include
#include
#include
main()
{
int server_sockfd,client_sockfd;
int server_len,client_len;
struct sockaddr_un server_address;
struct sockaddr_un client_address;
unlink("server_socket");
server_sockfd = socket(AF_UNIX,SOCK_STREAM,0);
server_address.sun_family = AF_UNIX;
strcpy(server_address.sun_path,"server_socket");
server_len = sizeof(server_address);
bind(server_sockfd, (struct sockaddr_un*)&server_address,server_len);
listen(server_sockfd,5);
while(1)
{
char ch;
client_len = sizeof(client_address);
client_sockfd = accept(server_sockfd,(struct sockaddr_un*)&client_address,&client_len);
read(client_sockfd,&ch,1);
ch++;
write(client_sockfd,&ch,1);
close(client_sockfd);
}
}
#include
#include
#include
main()
{
int server_sockfd,client_sockfd;
int server_len,client_len;
struct sockaddr_un server_address;
struct sockaddr_un client_address;
unlink("server_socket");
server_sockfd = socket(AF_UNIX,SOCK_STREAM,0);
server_address.sun_family = AF_UNIX;
strcpy(server_address.sun_path,"server_socket");
server_len = sizeof(server_address);
bind(server_sockfd, (struct sockaddr_un*)&server_address,server_len);
listen(server_sockfd,5);
while(1)
{
char ch;
client_len = sizeof(client_address);
client_sockfd = accept(server_sockfd,(struct sockaddr_un*)&client_address,&client_len);
read(client_sockfd,&ch,1);
ch++;
write(client_sockfd,&ch,1);
close(client_sockfd);
}
}
|
请帮我看看这段代码 我调不出来
大家都是神仙?
谁知道你需要什么?
做开发 首先你要主动些 多实践 自己攻克一部分问题 总结出不能解决的问题 寻求帮助
unlink("server_socket");
如这个一般应当用绝对路径
server_len = sizeof(server_address);
bind(server_sockfd, (struct sockaddr_un*)&server_address,server_len);
如这个一般应当是 server_address 实际有用内容的长度 而不应当是整个结构长度 也就是
sizeof(saddr.sun_family) + strlen (saddr.sun_path)
bind后
因为你unlink了 所以再新建这个本地套接流文件之后应当重设权限
然后是应当注册一些异常情况的中断服务 把 你bind文件 unlink掉
client_sockfd = accept(server_sockfd,(struct sockaddr_un*)&client_address,&client_len);
未判定client_sockfd
read(client_sockfd,&ch,1);
ch++; // 这东西指向哪里? 你敢用他的地址?
write(client_sockfd,&ch,1); 写的什么 ? 你能确定?
路漫漫其修远昔
大家都是神仙?
谁知道你需要什么?
做开发 首先你要主动些 多实践 自己攻克一部分问题 总结出不能解决的问题 寻求帮助
unlink("server_socket");
如这个一般应当用绝对路径
server_len = sizeof(server_address);
bind(server_sockfd, (struct sockaddr_un*)&server_address,server_len);
如这个一般应当是 server_address 实际有用内容的长度 而不应当是整个结构长度 也就是
sizeof(saddr.sun_family) + strlen (saddr.sun_path)
bind后
因为你unlink了 所以再新建这个本地套接流文件之后应当重设权限
然后是应当注册一些异常情况的中断服务 把 你bind文件 unlink掉
client_sockfd = accept(server_sockfd,(struct sockaddr_un*)&client_address,&client_len);
未判定client_sockfd
read(client_sockfd,&ch,1);
ch++; // 这东西指向哪里? 你敢用他的地址?
write(client_sockfd,&ch,1); 写的什么 ? 你能确定?
路漫漫其修远昔