这样的socket方式可不可以实现?why?
这样的方式可不可以实现:
make_socket(...)
for(;;) {
connect_socket(...)
send_info(...)
recv_info(...)
}
close_socket
或者
make_socket(...)
connect_socket(...)
for(;;) {
send_info(...)
recv_info(...)
}
close_socket
问题点数:40、回复次数:6Top
1 楼player008(player008)回复于 2005-02-03 14:38:16 得分 5
connect 和send 不应该放到循环里去,connect开始连一次就行了,send用到的时候才调用,至于 receive应该写一个while(true),让一有消息就收上来。Top
2 楼xiaohaiyan(xiaohaiyan)回复于 2005-02-03 14:42:44 得分 20
你这个程序一阻塞就over了。Top
3 楼kaphoon(齐柏林飞艇)回复于 2005-02-03 20:21:33 得分 5
单从语义上讲后者是成立的,但是正如楼上所说,一阻塞就没有办法恢复。
而前者是肯定错误的,因为一个sockfd只能connect一次!(例如你第一次connect
后出现错误,你就只能再sock一个socket,再connect,或者就直接退出拉,呵呵)Top
4 楼ringking007(四叶clover)回复于 2005-02-04 17:41:09 得分 0
呵呵,就是咯
一阻塞就挂了..
Top
5 楼canana(chen)回复于 2005-02-04 18:42:35 得分 10
以前看过
make_socket(...)
connect_socket(...)
for(;;) {
send_info(...)
recv_info(...)
}
close_socket
这样的结构的库程序,请教各位高手,close_socket这句会被执行到吗?如果for里面没有break,程序只有ctrl+c掉,那close_socket这句不就不会执行到吗,那写得有意义吗?Top
6 楼Wolf0403(废人:独活十年~心如刀割)回复于 2005-02-05 08:36:03 得分 0
make_socket(...)
connect_socket(...)
for(;;) {
send_info(...)
recv_info(...)
if (...)
/* Reached the exit condition */
break;
}
close_socketTop




