int main(void) { srand((int)time(0)); int connfd; connfd = unix_socket_conn("foo.sock"); if(connfd<0) { printf("Error[%d] when connecting...",errno); return 0; } printf("Begin to recv/send...\n"); int i,n,size; char rvbuf[4096]; for(i=0;i<3;i++) { //=========发送====================== memset(rvbuf,'a'+i,2048); rvbuf[2047]='b'; size = send(connfd, rvbuf, 2048, 0); if(size>=0) { printf("Data[%d] Sended:%c.\n",size,rvbuf[2047]); } if(size==-1) { printf("Error[%d] when Sending Data:%s.\n",errno,strerror(errno)); break; } sleep(1); } unix_socket_close(connfd); printf("Client exited.\n"); }
int main(void) { srand((int)time(0)); int connf; connf = unix_socket_conn("foo.sock"); if(connf<0) { printf("Error[%d] when connecting...",errno); return 0; } printf("Begin to recv/send...\n"); int i,n,size; char rvbuf[4096]; for(i=0;i<10;i++) { /* //=========接收===================== size = recv(connfd, rvbuf, 800, 0); //MSG_DONTWAIT if(size>=0) { printf("Recieved Data[%d]:%c...%c\n",size,rvbuf[0],rvbuf[size-1]); } if(size==-1) { printf("Error[%d] when recieving Data.\n",errno); break; } if(size < 800) break; */ //=========发送====================== memset(rvbuf,'a',2048); rvbuf[2047]='b'; size = send(connf, rvbuf, 2048, 0); if(size>=0) { printf("Data[%d] Sended:%c.\n",size,rvbuf[0]); } if(size==-1) { printf("Error[%d] when Sending Data:%s.\n",errno,strerror(errno)); break; } sleep(1); } unix_socket_close(connf); printf("Client exited.\n"); }
int unix_socket_init(const char *sockfile) { int fd = socket(AF_UNIX, SOCK_STREAM, 0); if ( fd < 0 ) { return -1; } struct sockaddr_un addr; memset(&addr, 0, sizeof(struct sockaddr_un)); addr.sun_family = AF_UNIX; strcpy(addr.sun_path, sockfile); int ret = connect(fd, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)); if ( ret < 0 ) { unix_socket_close(fd); return -1; } // unix_socket_setnonblock(fd); return fd; }