打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
TCP本地通信 简单程序实现 (一)
服务端:
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include<sys/un.h>
#include<unistd.h>
#include<stdlib.h>
int main(int argc,char *argv[])
{
int server_sockfd,client_sockfd;
int server_len,client_len;
struct sockaddr_un server_address;
struct sockaddr_un client_address;
int i,byte;
char ch_send,ch_recv;
unlink("server_socket");
server_sockfd=socket(AF_UNIX,SOCK_STREAM,0); // AF_INET IPV4域 AF_UNIX UNIX 域 SOCK_STREAM 可靠/双向
//面向链接字节流,0 :系统自动选择 协议
server_address.sun_family=AF_UNIX;
strcpy(server_address.sun_path,"server_socket");//如果是 AF_UNIX域,需要与一个文件进行绑定 //临时文件                           //会在当前目录下,生成临时文件  server_socket
server_len=sizeof(server_address);
//绑定 ip 地址和端口
bind(server_sockfd,(struct sockaddr *)&server_address,server_len);
//监听网络,
listen(server_sockfd,5);
printf("is watiing for client connect...\n");
//客户端发起连接
client_len=sizeof(client_address);
client_sockfd=accept(server_sockfd,(struct sockaddr *)&client_address,(socklen_t *)&client_len);    //当没有 客户端请求,accept 会阻塞
while(1)
{
if((byte=read(client_sockfd,&ch_recv,1))==-1)
{
perror("read");
exit(EXIT_FAILURE);
}
printf("receive a character from client is : %c \n",ch_recv);
//sleep(1);
//    printf("input a charater to send :\n");
ch_send=getchar();
if((byte=write(client_sockfd,&ch_send,1))==-1)
{
perror("write");
exit(EXIT_FAILURE);
}
//printf("");
}
close(client_sockfd);
unlink("server socket");
return 0;
}/**/
客户端:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <sys/un.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc,char *argv[])
{
int sockfd;
int len;
struct sockaddr_un address;
int i,byte;
char ch_recv,ch_send;
sockfd=socket(PF_UNIX,SOCK_STREAM,0);
address.sun_family=AF_UNIX;
strcpy(address.sun_path,"server_socket");
len=sizeof(address);
connect(sockfd,(struct sockaddr*)&address,len);
while(1)
{
//    printf("intpur a charater to send:\n");
ch_send=getchar();
write(sockfd,&ch_send,1);
byte=read(sockfd,&ch_recv,1);
printf("receiver charater from server is %c:\n\n",ch_recv);
}
close(sockfd);
return 0;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux 网络编程——并发服务器的三种实现模型
UDP socket编程实例代码
c语言udp通信实例(linux)
3个学习Socket编程的简单例子:TCP Server/Client, Select
嵌入式中,TCP server如何与多个client通信?(附代码)
网络socket编程指南
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服