青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

Linux Socket編程實(shí)例(一個(gè)Hello World程序)

在Linux下寫了個(gè)小的socket程序,分為客戶端和服務(wù)器端,服務(wù)端開一個(gè)端口(2000),做為一個(gè)daemon,等待客戶的連接請求.一旦有客戶連接,服務(wù)器端打印出客戶端的IP地址和端口,并且向服務(wù)器端發(fā)送歡迎信息和時(shí)間.下面是服務(wù)端的代碼(tcpserver.c).由于這只是個(gè)簡單的程序,所以只用了單線程實(shí)現(xiàn)!

/* *
 * Tcp Server program, It is a simple example only.
 * zhengsh 200520602061 2
 * when client connect to server, send a welcome message and timestamp in server.
  
*/
 

#include  
<stdio.h> 
#include  
<sys/socket.h> 
#include  
<unistd.h> 
#include  
<sys/types.h> 
#include  
<netinet/in.h> 
#include  
<stdlib.h> 
#include  
<time.h> 
 
#define  SERVER_PORT 20000  //  define the defualt connect port id 
#define  LENGTH_OF_LISTEN_QUEUE 10  // length of listen queue in server 
#define  BUFFER_SIZE 255 
#define  WELCOME_MESSAGE "welcome to connect the server. " 

int main(int argc, char** argv)
{
       
int  servfd,clifd;
       
struct  sockaddr_in servaddr,cliaddr;

       
if  ((servfd  =  socket(AF_INET,SOCK_STREAM, 0 ))  <   0 )
         
{
              printf( 
" create socket error!\n " );
              exit( 
1 );
       }
 
 
       bzero( 
& servaddr, sizeof (servaddr));

       servaddr.sin_family  
=  AF_INET;
       servaddr.sin_port  
=  htons(SERVER_PORT);
       servaddr.sin_addr.s_addr  
=  htons(INADDR_ANY);

       
if  (bind(servfd,( struct  sockaddr * ) & servaddr, sizeof (servaddr)) < 0 )
         
{
              printf( 
" bind to port %d failure!\n " ,SERVER_PORT);
              exit( 
1 );
       }
 
 
        
if  (listen(servfd,LENGTH_OF_LISTEN_QUEUE)  <   0 )
         
{
              printf( 
" call listen failure!\n " );
              exit( 
1 );
       }
 
 
        
while  ( 1 )
         
// server loop will nerver exit unless any body kill the process 

              
char  buf[BUFFER_SIZE];
              
long  timestamp;
              socklen_t length  
=   sizeof (cliaddr);
              clifd  
=  accept(servfd,( struct  sockaddr * ) & cliaddr, & length);

               
if  (clifd  <   0 )
                
{
                     printf( 
" error comes when call accept!\n " );
                     
break ;
              }
 
 
              strcpy(buf,WELCOME_MESSAGE);

               
// inet_ntop(INET_ADDRSTRLEN,cliaddr.sin_addr,buf,BUFFER_SIZE); 

              printf( 
" from client,IP:%s,Port:%d\n " ,inet_ntoa(cliaddr.sin_addr),ntohs(cliaddr.sin_port));

              timestamp  
=  time(NULL);

              strcat(buf, 
" timestamp in server: " );
              strcat(buf,ctime( 
& timestamp));

              send(clifd,buf,BUFFER_SIZE, 
0 );

              close(clifd);           

       }
 // exit 
 
       close(servfd);

        
return   0 ;
}


 客戶每次用一個(gè)隨機(jī)的端口連接服務(wù)器,并接收來自服務(wù)器的歡迎信息,然后打印出來(tcpclient).運(yùn)行的時(shí)候接受一個(gè)參數(shù),也就是服務(wù)器的ip地址.
/*  Tcp client program, It is a simple example only.
 * zhengsh 200520602061 2
 * connect to server, and echo a message from server.
*/
 


#include 
<stdio.h>
#include 
<sys/socket.h>
#include 
<unistd.h>
#include 
<sys/types.h>
#include 
<netinet/in.h>
#include 
<stdlib.h> 


#define  SERVER_PORT 20000  //  define the defualt connect port id 
#define  CLIENT_PORT ((20001+rand())%65536)  //  define the defualt client port as a random port 
#define  BUFFER_SIZE 255 
#define  REUQEST_MESSAGE "welcome to connect the server.\n" 


void  usage(char* name)
{
       printf( 
" usage: %s IpAddr\n " ,name);
}



int  main(int argc, char** argv)
{
       
int  servfd,clifd,length = 0;
       
struct  sockaddr_in servaddr,cliaddr;
       socklen_t socklen  
=   sizeof (servaddr);
       
char  buf[BUFFER_SIZE];

        
if (argc < 2 )
         
{
              usage(argv[ 
0 ]);
              exit( 
1 );
       }
 

       
if ((clifd  =  socket(AF_INET,SOCK_STREAM, 0 ))  <   0 )
         
{
             printf( 
" create socket error!\n " );
             exit( 
1 );
       }
 
 
       srand(time(NULL)); 
// initialize random generator 
 
       bzero( 
& cliaddr, sizeof (cliaddr));
       cliaddr.sin_family  
=  AF_INET;
       cliaddr.sin_port  
=  htons(CLIENT_PORT);
       cliaddr.sin_addr.s_addr  
=  htons(INADDR_ANY);

       bzero( 
& servaddr, sizeof (servaddr));
       servaddr.sin_family  
=  AF_INET;
       inet_aton(argv[ 
1 ], & servaddr.sin_addr);
       servaddr.sin_port  
=  htons(SERVER_PORT);
      
// servaddr.sin_addr.s_addr = htons(INADDR_ANY); 

       
if  (bind(clifd, (struct sockaddr* ) &cliaddr, sizeof (cliaddr)) < 0 )
       
{
              printf( 
" bind to port %d failure!\n " ,CLIENT_PORT);
              exit( 
1 );
       }
 

        
if (connect(clifd,( struct  sockaddr * ) & servaddr, socklen)  <   0 )
       
{
              printf( 
" can't connect to %s!\n ", argv[ 1 ]);
              exit( 
1 );
       }
 

       length  
=  recv(clifd, buf, BUFFER_SIZE, 0);
        
if  (length < 0)
        
{
              printf( 
" error comes when recieve data from server %s! ", argv[1] );
              exit( 
1 );
       }
 

       printf( 
" from server %s :\n\t%s", argv[1], buf);

       close(clifd);
       
return 0;
}
 



程序在Fedora core 4下通過編譯,有幾個(gè)warining.但是不影響.

posted on 2006-04-20 17:49 楊粼波 閱讀(16085) 評論(0)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)編程Linux編程

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美精品一区二区蜜臀亚洲| 亚洲精品国久久99热| 亚洲少妇最新在线视频| 久久综合综合久久综合| 亚洲一二三区精品| 欧美激情在线免费观看| 在线欧美一区| 久久久久久黄| 亚洲欧美另类综合偷拍| 国产精品成人aaaaa网站 | 免费久久99精品国产| 国产欧美在线视频| 亚洲综合好骚| 亚洲精选在线| 欧美理论大片| 亚洲另类在线一区| 亚洲福利视频二区| 久久深夜福利免费观看| 狠狠色综合色区| 久久久国产精品一区二区三区| 亚洲欧美日韩在线一区| 国产精品―色哟哟| 午夜精品一区二区三区四区| 99视频日韩| 欧美偷拍另类| 亚洲一级在线观看| 在线综合亚洲| 国产精品老女人精品视频| 亚洲一区二区三区777| 99精品热6080yy久久| 欧美日韩在线影院| 亚洲视频欧美在线| 一本久道久久综合狠狠爱| 欧美三区视频| 亚洲欧美日韩国产一区二区| 亚洲一二三区在线观看| 国产精品嫩草99av在线| 欧美一区午夜精品| 香蕉尹人综合在线观看| 国产精品人人爽人人做我的可爱 | 欧美午夜视频在线观看| 亚洲网站在线观看| 中国av一区| 国产女人水真多18毛片18精品视频| 午夜精品久久久久久99热| 午夜日本精品| 黑丝一区二区三区| 欧美成人免费一级人片100| 麻豆成人综合网| 亚洲免费观看视频| 一区二区三区四区五区精品视频 | 亚洲欧美在线磁力| 亚洲自拍偷拍麻豆| 狠狠色狠狠色综合人人| 欧美成人免费全部观看天天性色| 欧美国产精品| 亚洲在线视频免费观看| 欧美一级久久久| 在线成人性视频| 亚洲经典在线看| 欧美性开放视频| 久久免费99精品久久久久久| 狂野欧美激情性xxxx| 夜夜爽av福利精品导航| 亚洲综合丁香| 亚洲国产一区视频| 99视频精品全部免费在线| 国产精品在线看| 欧美v日韩v国产v| 欧美日韩一卡二卡| 久久精品中文字幕一区二区三区| 美女视频网站黄色亚洲| 亚洲一区精品电影| 久久精品夜色噜噜亚洲aⅴ| 亚洲免费观看视频| 午夜国产精品视频| 亚洲经典在线| 亚洲手机在线| 亚洲国产精品小视频| 一区二区欧美精品| 伊人久久婷婷色综合98网| 亚洲日本一区二区三区| 国产日韩精品一区二区| 亚洲成人在线视频播放 | 国产美女精品人人做人人爽| 免费成人在线观看视频| 欧美日韩专区在线| 久久久久中文| 欧美视频日韩| 免费不卡欧美自拍视频| 国产精品盗摄一区二区三区| 麻豆久久婷婷| 国产精品欧美日韩久久| 亚洲大片在线观看| 国产欧美日韩一级| 亚洲精品一区二区三区av| 国产一区二区三区四区在线观看 | 久久天堂国产精品| 欧美日韩综合网| 欧美大片第1页| 国产伦精品一区二区三区| 亚洲国产第一| 黄色av日韩| 在线综合亚洲欧美在线视频| 最新亚洲电影| 久久成人精品电影| 亚洲欧美日韩一区二区三区在线观看 | 久久精品日韩| 亚洲男人天堂2024| 欧美肥婆在线| 久久精精品视频| 国产精品国产三级国产aⅴ入口| 欧美激情bt| 国产一区二区三区黄| 中文日韩欧美| 99在线精品观看| 快射av在线播放一区| 久久久7777| 国产精品系列在线播放| 99国产精品久久久久久久| 激情六月婷婷综合| 亚洲欧美综合精品久久成人| 亚洲一区二区三区高清| 欧美大胆a视频| 农夫在线精品视频免费观看| 国产又爽又黄的激情精品视频| 亚洲少妇最新在线视频| 一本一本a久久| 欧美mv日韩mv亚洲| 免费亚洲电影| 韩国av一区二区三区在线观看| aa日韩免费精品视频一| 亚洲精品在线电影| 免费精品99久久国产综合精品| 老鸭窝毛片一区二区三区| 国产日韩欧美电影在线观看| 亚洲一级在线观看| 亚洲免费伊人电影在线观看av| 欧美日韩色婷婷| 亚洲免费观看高清完整版在线观看熊| 亚洲日本免费| 欧美激情精品久久久久久变态| 亚洲大胆在线| 亚洲人体影院| 欧美黑人一区二区三区| 亚洲人成人99网站| 日韩亚洲一区二区| 欧美日本精品| 99精品久久久| 亚洲免费小视频| 国产精品人成在线观看免费| 亚洲午夜精品17c| 午夜视黄欧洲亚洲| 国产毛片一区| 久久av一区二区三区| 久久亚洲国产精品日日av夜夜| 韩曰欧美视频免费观看| 久久精品在线观看| 欧美成人精品福利| 亚洲经典在线看| 欧美久久久久久蜜桃| 日韩一级欧洲| 午夜国产不卡在线观看视频| 国产女主播一区二区| 欧美一区二区三区在线观看视频 | 国产精品99久久久久久宅男 | 亚洲欧洲精品一区二区三区| 一本一道久久综合狠狠老精东影业| 欧美人与禽性xxxxx杂性| 日韩午夜剧场| 欧美在线视频免费播放| 狠狠色狠狠色综合人人| 欧美wwwwww| 99精品免费| 久久精品国产999大香线蕉| 在线观看中文字幕不卡| 欧美大色视频| 亚洲视频一区在线| 久久精品免费播放| 亚洲国产精品精华液2区45| 欧美日本不卡视频| 午夜伦理片一区| 欧美大片在线观看一区| 一区二区三区免费网站| 国产精品一区=区| 久久精品麻豆| 亚洲欧洲美洲综合色网| 亚洲欧美清纯在线制服| 黑人一区二区| 欧美日韩国产影院| 亚洲欧美激情四射在线日| 欧美91大片| 亚洲一区欧美激情| 国内精品免费午夜毛片| 欧美激情第二页| 亚洲欧美日韩天堂| 亚洲电影在线播放| 西西裸体人体做爰大胆久久久| 在线观看91精品国产麻豆| 欧美日韩一区二区三区在线看|