socket程式設計 客戶端向伺服器傳送字串,傳檔案

2022-06-14 18:00:12 字數 2403 閱讀 6358

功能:分為客戶端和伺服器,client可向server傳送字串,傳送檔案。

環境:ubuntu

編譯方法:

client.c:  gcc -o client client.c

原始碼:

server.c

#include#include

#include

#include

#include

#include

#include

#define maxbuf 256

#define port 7787

intmain()

clen = sizeof

(client_addr);

memset(&server_addr,0,sizeof

(server_addr));

/*將已開闢的server_addr的前sizeof(server_addr)個位元組設定為0

*/server_addr.sin_family =af_inet;

/*sin_family指代協議族,在socket程式設計中只能是af_inet

*/server_addr.sin_addr.s_addr=htonl(inaddr_any);

/*inaddr_any表示可以和任何的主機通訊

*/server_addr.sin_port=htons(port);/*

sin_port儲存埠號

*/if(bind(ssock,(struct sockaddr *)&server_addr,sizeof(server_addr))<0

)

if(listen(ssock,8)<0

) csock=accept(ssock,(struct sockaddr *)&client_addr,(socklen_t*)&clen);

/*accept(int sockfd, struct sockaddr *addr,int *addrlen)

addr,addrlen是用來給客戶端的程式填寫的,伺服器端只要傳遞指標就可以了

accept成功時返回最後的伺服器端的檔案描述符,這個時候伺服器端可以向該描述符寫資訊了

失敗時返回-1

*/while(1

) fclose(stdout);

freopen(

"/dev/tty

","w

",stdout);//

puts(

"file received success!");}}

else

if(strcmp(buf,"

%$#@

")==0)}}

close(csock);

return0;

}

client.c

#include#include

#include

#include

#include

#include

#include

#define maxbuf 256

#define port 7787

intmain()

clen = sizeof

(server_addr);

memset(&server_addr,0,sizeof

(server_addr));

server_addr.sin_family =af_inet;

server_addr.sin_addr.s_addr=inet_addr("

127.0.0.1");

//inet_addr:ip轉換為4位元組整形,使用時需要根據服務端ip進行更改

server_addr.sin_port =htons(port);

if(connect(ssock,(struct sockaddr *)&server_addr,clen)<0

)

while(1

)

else

if(ch==2)

}if(cnt)//

傳送最後不足maxbuf的部分

send(ssock,

"@#$%

",maxbuf,0);//

表示傳送完畢

fclose(stdin);

freopen(

"/dev/tty

","r

",stdin);}}

else

break

; }

close(ssock);

return0;

}

Socket程式設計 伺服器向客戶端傳送資料

最近想學習一下底層的socket程式設計的東西,了解一下具體的原理,而不只是使用封裝好的類庫。從c語言中文網教程上學習的,記錄一下吧。使用vs2010為開發環境,可能由於缺少庫的原因?codeblocks沒法使用.伺服器向客戶端傳送資料 hello world 執行結果 客戶端 源 伺服器端 inc...

C TCP 伺服器客戶端Socket程式設計

server.cpp include include using namespace std include define buf size 64 pragma comment lib,ws2 32.lib int main 建立監聽的socket sserver socket af inet,so...

客戶端 伺服器程式設計模型

客戶端和伺服器是程序,不是主機。客戶端 伺服器模型中的基本操作是事務。乙個客戶端 伺服器事務由四步組成 1.當乙個客戶端需要服務時,它向伺服器傳送乙個請求,發起乙個事務。例如,當web瀏覽器需要乙個檔案時,它就傳送乙個請求給web伺服器。2.伺服器收到請求後,解釋它,並以適當的方式操作它的資源。例如...