コード例 #1
0
ファイル: coreconnector.c プロジェクト: hongling0/ho_net
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;
}
コード例 #2
0
ファイル: server.c プロジェクト: CMQY/file-transfer
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;

}