请求一个完整代码

zll_lover 2010-08-30 03:58:16
static void app_run()
{
int port = 2001;
char sz_ip[50] = "127.0.0.1";
int sock_type = SOCK_STREAM;

int from_len;

WSADATA wsaData;
struct sockaddr_in local_addr;
struct sockaddr_in from_addr;
SOCKET listen_sock;
SOCKET msg_sock;
CHAT_CLIENT *temp_client;

char from_ipstr[20];

//printf("\n (server) enter your ip:\n");
//scanf("%s",sz_ip);

//printf("\n (server) enter your port:\n");
//scanf("%d",&port);

strcpy(sz_ip,"192.168.16.18");
port = 2001;

if(WSAStartup(0x202,&wsaData) != 0)
{
printf("\n !!!wsastartup fail\n");
WSACleanup();
return;
}
printf("\n WSAStartup() ok \n");

ew_net_addr_by_ip(&local_addr,sz_ip,port);

listen_sock = socket(AF_INET,sock_type,0);

if(listen_sock == INVALID_SOCKET)
{
printf("\n !!!socket() creating fail\n");
WSACleanup();
return;
}

printf("\n socket() ok\n");

if(bind(listen_sock,(struct sockaddr*)&local_addr,sizeof(local_addr)) == SOCKET_ERROR)
{
printf("\n !!!bind() fail\n");
WSACleanup();
return;
}

printf("\n bind() ok \n");


if(listen(listen_sock,5) == SOCKET_ERROR)
{
printf("\n !!!listen() fail\n");
WSACleanup();
return;
}

printf("\n listen() ok \n");

while(true)
{

from_len = sizeof(from_addr);
msg_sock = accept(listen_sock,(struct sockaddr *)&from_addr,&from_len);
if(msg_sock == INVALID_SOCKET)
{
printf("\n !!!accept() fail %d\n",WSAGetLastError());
WSACleanup();
continue;
}

ew_net_ipstr(&from_addr,from_ipstr);
client_add(from_ipstr,ntohs(from_addr.sin_port),msg_sock);
client_get(from_ipstr,ntohs(from_addr.sin_port),&temp_client);

CreateThread(NULL,0,proc_client,temp_client,0,NULL);
}

WSACleanup();


}

以上不是完整代码,想学习一下,请大家帮忙给我贴一个典型的完整的父进程生成子进程处理的过程好吗?谢谢,我要c的
...全文
148 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zll_lover 2010-09-06
  • 打赏
  • 举报
回复
谢稻草人了
abs495237027 2010-09-05
  • 打赏
  • 举报
回复
在这里逛了半天,没有一个自己会解决的问题。汗啊。
zhangweiit 2010-09-03
  • 打赏
  • 举报
回复
不好意思,我这么久才来
最近都很少上论坛
东西已经发给你了
赵4老师 2010-08-30
  • 打赏
  • 举报
回复
zll_lover 2010-08-30
  • 打赏
  • 举报
回复
其实前半部分比较熟悉,就是没有看过剩下部分的用子进程来处理过程的例子
ew_net_ipstr(&from_addr,from_ipstr);
client_add(from_ipstr,ntohs(from_addr.sin_port),msg_sock);
client_get(from_ipstr,ntohs(from_addr.sin_port),&temp_client);

CreateThread(NULL,0,proc_client,temp_client,0,NULL);
所以正在找学习的例子,感谢一楼能帮我提供下吗?
ForestDB 2010-08-30
  • 打赏
  • 举报
回复
看上去挺完整的。

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧