o记实录系列,榨油机设备,雷必斯
s_un.sun_family = af_unix; strcpy(s_un.sun_path, "/tmp/afunix_text");
#include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <sys/un.h> #define filepath "/tmp/afunix_text" int main(){ int s0, sock; sockaddr_un s_un; sockaddr_un s_un_accept; socklen_t addrlen; s0 = socket(af_unix, sock_stream, 0); if(s0 < 0){ perror("socket"); return 1; } s_un.sun_family = af_unix; strcpy(s_un.sun_path, filepath); if(bind(s0, (sockaddr*)&s_un, sizeof(s_un)) != 0){ perror("bind"); return 1; } if(listen(s0, 5) != 0){ perror("listen"); return 1; } addrlen = sizeof(s_un_accept); sock = accept(s0, (sockaddr*)&s_un_accept, &addrlen); if(sock < 0){ perror("accept"); return 1; } printf("after accept\n"); write(sock, "the msg is send from server", 27); close(sock); close(s0); unlink(filepath); return 0; }
#include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <sys/un.h> int main(){ int sock; sockaddr_un s_un; int n; char buf[128]; sock = socket(af_unix, sock_stream, 0); if(sock < 0){ perror("socket"); return 1; } s_un.sun_family = af_unix; strcpy(s_un.sun_path, "/tmp/afunix_text"); if(connect(sock, (sockaddr*)&s_un, sizeof(s_un)) != 0){ perror("connect"); return 1; } printf("after connect\n"); memset(buf, 0, sizeof(buf)); n = read(sock, buf, sizeof(buf)); if(n < 0){ perror("read"); return 1; } printf("%s\n", buf); close(sock); return 0; }
#include <stdio.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> int main(){ int sock; sockaddr_un addr; socklen_t addrlen; sock = socket(af_unix, sock_dgram, 0); addr.sun_family = af_unix; strcpy(addr.sun_path, "/tmp/afu_dgram"); int n = sendto(sock, "hello\n", 6, 0, (sockaddr*)&addr, sizeof(addr)); printf("send data\n"); close(sock); return 0; }
#include <stdio.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/un.h> int main(){ int sock; sockaddr_un addr; socklen_t addrlen; char buf[1024]; int n; sock = socket(af_unix, sock_dgram, 0); addr.sun_family = af_unix; strcpy(addr.sun_path, "/tmp/afu_dgram"); bind(sock, (sockaddr*)&addr, sizeof(addr)); while(1){ memset(buf, 0, sizeof(buf)); n = recv(sock, buf, sizeof(buf) - 1, 0); printf("recv:%s\n", buf); } close(sock); return 0; }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论