int coreconnector_start(struct core_connector *co, void *param) { int err; if (co->socket) { assert(0); return 0; } err = start_connet(UB2LOGIC(co)->logic_id, co->ip, co->port, NULL, &co->socket); fprintf(stdout, "|start_connet|%d|%s:%d|%d\n", UB2LOGIC(co)->logic_id, co->ip, co->port, co->socket); if (!err && socket > 0) { return 0; } fprintf(stderr, "|start_connet|%d failure|%s:%d|%d %s\n", UB2LOGIC(co)->logic_id, co->ip, co->port, co->socket, errno_str(err)); return err; }
int main(int argc, char* argv[]) { int fd_server,fd_client; struct sockaddr_in server_addr; struct sockaddr_in client_addr; int ret; int sock_len=sizeof(struct sockaddr_in); if(argc<2) { printf("PLS input pathname...\n"); return 0; } strcpy(file_path,argv[1]); fd_server=socket(AF_INET,SOCK_STREAM,0); if(fd_server<0) { perror("socket"); return -1; } bzero(&server_addr,sizeof(struct sockaddr_in)); server_addr.sin_family=AF_INET; server_addr.sin_port=htons(PORT); server_addr.sin_addr.s_addr=htonl(INADDR_ANY); ret=bind(fd_server,(struct sockaddr *)&server_addr,sizeof(struct sockaddr)); if(ret<0) { perror("bind"); return -1; } ret=listen(fd_server,BACKLOG); if(ret<0) { perror("listen"); return -1; } printf("start listening ...\n"); fd_client=accept(fd_server,NULL,0); if(fd_client<0) { perror("accept"); return -1; } struct client_info client_info; client_info.fd=fd_client; client_info.sockaddr=&client_addr; start_connet(&client_info); close(fd_client); return 0; }