永发信息网

急求LINUX底层简单发包小程序!

答案:1  悬赏:70  手机版
解决时间 2021-01-16 17:52
  • 提问者网友:末路
  • 2021-01-16 02:34
急求LINUX底层简单发包小程序!
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-01-16 02:49
linux下底层?是socket的网络通信吧?用udb或tcp协议创建socket,然后send出去,就可以了。下面是个server端的TCP。
#include
#include
#include
#include

#define UNIX_DOMAIN "/tmp/UNIX.domain"

int main(void)
{
socklen_t clt_addr_len;
int listen_fd;
int com_fd;
int ret;
//int i;
static char recv_buf[64];
int len;
struct sockaddr_un client_addr;
struct sockaddr_un server_addr;

if((listen_fd=socket(PF_UNIX,SOCK_STREAM,0))<0)
{
perror("cannot creat listening socket");
return 1;
}

server_addr.sun_family=AF_UNIX;
strncpy(server_addr.sun_path,UNIX_DOMAIN,sizeof(server_addr.sun_path)-1);
unlink(UNIX_DOMAIN);

if((ret=bind(listen_fd,(struct sockaddr *)&server_addr,sizeof(server_addr)))==-1)
{
perror("cannot bing the server socket");
close(listen_fd);
unlink(UNIX_DOMAIN);
return 1;
}

if((ret=listen(listen_fd,1))==-1)
{
perror("cannot listen the client connect request");
close(UNIX_DOMAIN);
return 1;
}

len=sizeof(client_addr);
if((com_fd=accept(listen_fd,(struct sockaddr *)&client_addr,&len))<0)
{
perror("cannot accept client connect request");
close(listen_fd);
unlink(UNIX_DOMAIN);
return 1;
}

printf("\n==============info==============\n");
//for(i=0;i<4;i++)
//{
memset(recv_buf,0,64);
int num=read(com_fd,recv_buf,sizeof(recv_buf));
printf("Message from client(%d):%s",num,recv_buf);
printf("\n==============info==============\n");
//}

close(com_fd);
close(listen_fd);

unlink(UNIX_DOMAIN);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯