I O Socket程式設計

2021-06-21 13:33:33 字數 1578 閱讀 2278

伺服器端

#include

#include

using namespace std;

#include

#define buf_size 64

#pragma comment(lib,"ws2_32.lib")

int main()

//建立監聽的socket

sserver=socket(af_inet,sock_stream,ipproto_tcp);

if(invalid_socket==sserver)

//設定伺服器socket位址

sockaddr_in addrserv;

addrserv.sin_family=af_inet;

addrserv.sin_port=htons(9990);

addrserv.sin_addr.s_un.s_addr=htonl(inaddr_any);

//繫結sockets server

retval=bind(sserver,(const struct sockaddr*)&addrserv,sizeof(sockaddr_in));

if(socket_error==retval)

//在sockets server上進行監聽

retval=listen(sserver,1);

if(socket_error==retval)

//設定socket為非阻塞模式

int imode = 1;

retval = ioctlsocket(sserver,fionbio,(u_long far*) &imode);

if(retval == socket_error)

//接受來自客戶端的請求

printf("tcpserver start...\n");

sockaddr_in addrclient;

int addrclientlen=sizeof(addrclient);

while(true)

else

}break;

}while(true)

else if(err == wsaetimedout || err == wsaenetdown)

}systemtime st;

getlocaltime(&st);

char sdatetime[30];

sprintf(sdatetime,"%4d-%2d-%2d-%2d:%2d:%2d:%2d",st.wyear,st.wmonth,st.wday,st.whour,st.wminute,st.wsecond);

//列印輸出的資訊

printf("%s,recv from client [%s:%d]:%s\n",sdatetime,inet_ntoa(addrclient.sin_addr),addrclient.sin_port,buf);

//如果客戶端傳送quit字串,則伺服器退出

if(strcmp(buf,"quit")==1)//

//否則向客戶端傳送回顯字串

else

else}}

break;}}

客戶端客戶端

程式設計,還是程式設計

喜歡程式設計,雖然水平一般,但還是執著地學習與程式設計有關的知識。中間因為工作關係與程式設計遠離了一段時間,現在又重拾起來,細想起來還是因為喜歡吧。喜歡程式軟體的思想和原理,喜歡程式 的魅力和成就感。程式設計軟體的思想是最值得學習的,一直認為思想決定行動,思想改變世界。每種軟體的流行和受人追捧,無不...

少兒程式設計程式設計

機械人比賽,聽上去讓人有一種高大上的科技感,沒錯,在大多數人眼裡,玩機械人那是科學家做的事情,不過隨著機械人教育的普及,越來越多的孩子也能夠駕馭這高大上的機械人。格物斯坦小坦克告訴你原因,這是歸結於孩子對於程式設計課程的學習,學會對機械人進行程式設計了,自然就能玩轉機械人啦。參加機械人比賽的意義遠遠...

LINUX程式設計 socket程式設計

什麼是套接字 套接字是一種通訊過程,它使客戶 伺服器系統的開發工作既可以在本地單機上進行,也可以跨網路進行。套接字建立過程 1,建立乙個套接字,這是分配給該伺服器程序的乙個作業系統資源,套接字由伺服器通過系統呼叫socket建立出來的,所以其它程序將不能對它進行訪問。2,給套接字起個名字,用系統呼叫...