Linux网络编程案例:SOCKET本地通信和网络通信

本地进程通信

效果图:
在这里插入图片描述

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/un.h>
#include<sys/socket.h>

#define Backlog 5

//服务器
int main(int argc,const char** argv)
{
   
	
	//创建套接字
	int serfd=socket(AF_LOCAL,SOCK_STREAM,0);
	if(0>serfd)
	{
   
		perror("sockfd");
		return EXIT_FAILURE;
	}
	//初始化套接字
		struct sockaddr_un addr={
   };
		addr.sun_family=AF_LOCAL;
		strcpy(addr.sun_path,"sock");
		socklen_t addrlen=sizeof(addr);
	//绑定
	if(0>bind(serfd,(struct sockaddr*)&addr,addrlen))
	{
   
		perror("bind");
		return EXIT_FAILURE;
	}
	//监听
	if(listen(serfd,Backlog))
	{
   
		perror("listen");
		return EXIT_FAILURE;
	}
	printf("等待链接....\n");
	//等待链接
	int fd=accept(serfd,(struct sockaddr*)&addr,&addrlen);
	if(0>fd)
	{
   
		perror("accept");
		return EXIT_FAILURE;
	}
	//接受/发送数据
	char buf[4096]={
   };
	size_t buf_size=sizeof(buf);
	for(;;)
	{
   
	  printf("recv...");fflush(stdout);
	  size_t ret_size=read(fd,buf,buf_size);
	  if(0==ret_size)
	  {
   
		 printf("网络中断\n");
		 break;
	  }
	  if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值