当前位置: 技术问答>linux和unix
套接字客户服务器的传输问题
来源: 互联网 发布时间:2017-03-26
本文导语: 客户程序代码· include #include #include #include #include #include int main() { int sockfd; int len; struct sockaddr_un address; int result; char ch='A'; sockfd=socket(AF_...
客户程序代码·
客服程序 通过 套接字 写入一个字符A 服务器程序返回字符B
我想问的是 关于客服程序中的 write()和read()
客服程序向通过套接字写入字符后又立刻读取,怎么确定读取的一定是 服务器已经处理过的呢··
这之间有什么机制么,还是阻塞了直到服务器讲处理后的字符返回。
本人新手 希望可以解释的清楚点
include
#include
#include
#include
#include
#include
int main()
{
int sockfd;
int len;
struct sockaddr_un address;
int result;
char ch='A';
sockfd=socket(AF_UNIX,SOCK_STREAM,0);
//给套接字命名
address.sun_family=AF_UNIX;
strcpy(address.sun_path,"server_socket");
len=sizeof(address);
//将套接字连接到服务器
result=connect(sockfd,(struct sockaddr*)&address,len);
if(result==-1)
{
perror("oops:client1");
exit(EXIT_FAILURE);
}
//通过套接字进行读写
write(sockfd,&ch,1);
read(sockfd,&ch,1);
printf("char form server =%cn",ch);
close(sockfd);
exit(EXIT_SUCCESS);
}
服务器程序代码:
#includeisys/types.h>
#include
#include
#include
#include
#include
int 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 address*)&server_address,server_len);
listen(server_sockfd,5);
while(1)
{
char ch;
printf("server waitingn");
//接受一个请求
client_len=sizeof(client_address);
client_sockfd=accept(server_sockfd,(structsockaddr*)&client_address,&client_len);
read(client_sockfd,&ch,1);
ch++;
write(client_sockfd,&ch,1);
close(client_sockfd);
}
exit(EXIT_SUCCESS);
}
客服程序 通过 套接字 写入一个字符A 服务器程序返回字符B
我想问的是 关于客服程序中的 write()和read()
客服程序向通过套接字写入字符后又立刻读取,怎么确定读取的一定是 服务器已经处理过的呢··
这之间有什么机制么,还是阻塞了直到服务器讲处理后的字符返回。
本人新手 希望可以解释的清楚点
|
客户端写完一个字符后执行read(sockfd,&ch,1);这一句是会阻塞,直到读到从服务器端的返回或出错为止,通过判断函数的返回值确定是成功读取还是出错了,修改如下:
if(read(sockfd,&ch,1)
if(read(sockfd,&ch,1)
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。