急求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;
}
#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;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯