Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Unix(Linux) C++ ÏÂÖ§³ÖtimeoutµÄconnect()µÄʵÏÖÀý×Ó

java µÄconnectÓÐtimeoutÕâ¸ö¹¦ÄÜ£¬C++µÄconnect·´¶øÃ»ÓУ¿ Íø²éµÃµ½ÁËÁ½¸öʵÏֵİ汾ÈçÏ£º
Ö§³ÖtimeoutµÄconnect() / Connect with timeout
Code:
 void connect_w_to(void) {
int res;
struct sockaddr_in addr;
long arg;
fd_set myset;
struct timeval tv;
int valopt;
socklen_t lon;
// Create socket
soc = socket(AF_INET, SOCK_STREAM, 0);
if (soc < 0) {
fprintf(stderr, "Error creating socket (%d %s)\n", errno, strerror(errno));
exit(0);
}
addr.sin_family = AF_INET;
addr.sin_port = htons(2000);
addr.sin_addr.s_addr = inet_addr("192.168.0.1");
// Set non-blocking
if( (arg = fcntl(soc, F_GETFL, NULL)) < 0) {
fprintf(stderr, "Error fcntl(..., F_GETFL) (%s)\n", strerror(errno));
exit(0);
}
arg |= O_NONBLOCK;
if( fcntl(soc, F_SETFL, arg) < 0) {
fprintf(stderr, "Error fcntl(..., F_SETFL) (%s)\n", strerror(errno));
exit(0);
}
// Trying to connect with timeout
res = connect(soc, (struct sockaddr *)&addr, sizeof(addr));
if (res < 0) {
if (errno == EINPROGRESS) {
fprintf(stderr, "EINPROGRESS in connect() - selecting\n");
do {
tv.tv_sec = 5 //overtime;
tv.tv_usec = 0;
FD_ZERO(&myset);
FD_SET(soc, &myset);
res = select(soc+1, NULL, &myset, NULL, &tv);
if (res < 0 && errno != EINTR) {
fprintf(stderr, "Error connecting %d - %s\n", errno, strerror(errno));
exit(0);
}
else if (res > 0) {
// Socket selected for write
lon = sizeof(int);
if (getsockopt(soc, SOL_SOCKET, SO_ERROR, (void*)(&valopt), &lon) < 0) {
fprintf(stderr, "Error in getsockopt() %d - %s\n", errno, strerror(errno));
exit(0);
}
// Check the value returned...


Ïà¹ØÎĵµ£º

linux 0.11 ÄÚºËѧϰ pipe.c


/*
 * ¸ÃÎļþÖеÄÁ½¸öº¯Êýread_pipeºÍwrite_pipeÊÇÉϲ㺯Êý
 * readºÍwriteµÄµ×²ãʵÏÖ
 */
/*
 *  linux/fs/pipe.c
 *
 *  (C) 1991  Linus Torvalds
 */
#include <signal.h>
#include <linux/sched.h>
// ÄÚ´æ¹ÜÀíÍ·Îļþ¡£º¬ÓÐÒ³Ãæ´óС¶¨Òåº ......

Linux Java»·¾³ÅäÖð²×°

Ò»¡¢°²×°JDK
°²×°°üÃûΪ£ºjdk-1_5_0_18-linux-i586.rpm.bin
°²×°²½Ö裺
1. ÒÔrootÉí·ÝµÇ¼Linux²Ù×÷ϵͳ
2. ½«jdk-1_5_0_18-linux-i586.rpm.bin°²×°°üÉÏ´«µ½/tmpĿ¼ÏÂ, ¼ì²âÈ·±£jdk-1_5_0_18-linux-i586.rpm.binÓпÉÖ´ÐÐȨÏÞ£»
Èç¹ûjdk-1_5_0_18-linux-i586.rpm.binûÓпÉÖ´ÐÐȨÏÞ£¬¿ÉʹÓÃÒ»ÏÂÃüÁîÌí¼Ó
#c ......

LinuxÉçÇø°æµÄ¿¬Ä£






<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
       Ò»°ã˵À´£¬
Linux
ÉçÇø°æ×ÜÓеã¶ù´ÕºÏµÄÒâ˼£¬ÈËÃDz»¸ÒʹÓ㬵«ÊÇ£¬Ò²ÓÐÀýÍâµÄÇé¿ö¡£±ÈÈ磬¹ÚÃûΪ
Mint
µÄ
Linux
·¢Ðа档¾ßÌåÇé¿öÊÇÔõÑùµÄÄØ£¿
 
     ......

linuxϰ²×°MySQL


°²×°MySQL
ºÃ£¬ÎÒÃÇ¿ÉÒÔ¿ªÊ¼ÕýʽµÄ°²×°ÁË¡£¼ÙÉèÄã°ÑËùÓбØÐëµÄÔ´Âë»òÕß°ü¶¼·ÅÔÚÁË/tmpÏ¡£Èç¹ûÄãÏÂÔØµÄÊÇRPM°üµÄ»°£¬ÄDZȽϼòµ¥£»Èç¹ûÄãÏÂÔØµÄÊǶþ½øÖưü£¨ÄãûÓÐrpm³ÌÐò»òÕßÄãÏë×Ô¶¨ÒåµÄ»°£©£¬ÄÇô»áÉÔ΢Âé·³Ò»µã¡£
RPM°ü°²×°
Äã±ØÐë³ÉΪrootÓû§²ÅÄÜʹÓÃrpm°²×°³ÌÐò£¬ÒÔÏÂÊǰ²×°¹ý³Ì£º
$ cd /tmp
$ su
# rpm -Uvh ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ