socket程式設計之初體驗

2021-05-21 21:50:30 字數 1701 閱讀 5528

網路的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之後...