如何指定客户端的端口去连服务?

怎么指定客户端的端口去连服务???
我现在需要指定一个客户端的端口(比如30000)来连接服务,这个怎么实现啊???
一般都是自己分配的,没见过自己指定的!

------解决方案--------------------
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;;
struct hostent *host;

if((serSocket=socket(AF_INET,SOCK_STREAM,0)) == -1)
{
mylog( "创建Socket发生错误! ");
return -1;
}

if((host=gethostbyname(SERVER_ADDR)) == NULL)
{
mylog( "调用gethostbyname错误,地址:[%s]! ",SERVER_ADDR);
return -1;
}

intflag=1;
setsockopt(serSocket,SOL_SOCKET,SO_REUSEADDR,(char *)&flag,sizeof(int));

client_addr.sin_family = AF_INET;
client_addr.sin_port = htons(4567);
client_addr.sin_addr.s_addr = INADDR_ANY;
if(bind(serSocket,(struct sockaddr *)&client_addr,sizeof(client_addr)) == -1)
{
mylog( "绑定错误 ");
return -1;
}

server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SERVER_PORT);
server_addr.sin_addr = *((struct in_addr *)host-> ;h_addr);
bzero(&server_addr.sin_zero,8);
if(connect(serSocket,(struct sockaddr *)&server_addr,sizeof(server_addr))==-1)
{
mylog( "连接服务器发生错误,地址:[%s] ",SERVER_ADDR);
return -1;
}