網路的socket資料傳輸是一種特殊的i/o。常用的socket型別有兩種:流失socket(sock_stream針對tcp服務)和資料報式(sock_dgragm針對udp服務)
下面介紹一些socket程式設計相關資料型別定義
1,結構型別struct sockaddr
my_addr.sin_family = af_inet;
my_addr.sin_port = htons( myport );
my_addr.sin_addr.s_addr = inaddr_any;
bzero( &(my_addr.sin_zero), 8 );
if( (bind(sockfd, (struct sockaddr *)&my_addr, sizeof( struct sockaddr))) == -1 )
if( listen( sockfd, backlog) == -1 )
while(1)
printf( "server : got connection from %s", inet_ntoa( their_addr.sin_addr ) );
if( !fork() )
close(new_fd);
waitpid( -1, null, wnohang);}}
客戶端**client.c
#include
#include
#include
#include
#include
#include
#include
#include
#define port 3490
#define maxdatasize 100
int
main( int argc, char *argv )
/* if( (he = gethostbyname( argv[1])) == null )*/
if( (sockfd = socket(af_inet, sock_stream, 0)) == -1)
their_addr.sin_family = af_inet;
their_addr.sin_port = htons( port );
their_addr.sin_addr.s_addr = inet_addr( argv[1] );
// their_addr.sin_addr = *( (struct in_addr *)he->h_addr );
bzero( &(their_addr.sin_zero), 8 );
if( connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct sockaddr)) == -1 )
if( (numbytes = recv(sockfd, buf, maxdatasize, 0)) == -1 )
buf[numbytes] = '/0';
printf("recived: %s", buf);
close(sockfd);
return 0;
}makefile內容
all : server.o client.o
server.o : server.c
gcc -o server.o server.c
client.o : client.c
gcc -o client.o client.c
結對程式設計之初體驗
自開始結對程式設計開始至今已有乙個星期有餘,時間雖短,但也還是小有感觸,下面聽我細細道來 第一次認識 說來慚愧,在上鄒欣老師軟工課程之前從來沒有聽過 結對程式設計 這詞,第一次在作業的安排中見到了pair project,要求 結對程式設計 當時也沒多想,認為不就是兩個人做同乙個專案嘛,分工之後合併...
Linux指令碼程式設計之初體驗
一 學習目的 通過學習本文,能夠掌握linux指令碼程式設計的基礎,了解linux指令碼的編寫及執行方法。二 學習內容 1 掌握至少一種linux下的文字編輯器。2 編寫linux指令碼。3 執行linux指令碼。三 樣例 vi hello.sh 2 在編寫linux指令碼時,最好在指令碼的第一行指...
bing之初體驗
哈哈,期待已久的微軟搜尋引擎bing 必應 的中文版今天終於推出了。剛開始使用google搜尋其主頁時怎麼也搜尋不到,還以為微軟食言。後來轉念一想,bing很可能是google未來的最大競爭對手,在當前這個還不為人所熟知的階段,很有可能給對方穿穿小鞋的。於是用在ie自帶的搜尋工具條上鍵入bing之後...