導航:首頁 > IDC知識 > c伺服器客戶端

c伺服器客戶端

發布時間:2020-11-09 00:52:05

1、C用一個socket實現一個伺服器接收兩個客戶端的信息並保存

服務端監聽socket正常是不與任何客戶端socket進行通信的。監聽socket死循環作監聽工作,當收到一個連接之後,創建一個新的socket來與客戶端通信。這樣理論上一個服務端可以與上萬的客戶端通信。只是要記住,每個真正參與通信的socket都需要開兩個單獨的線程來進行消息的收發。

2、c/s模式,伺服器往客戶端發消息

TCP/IP協議中,是客戶端主動連接伺服器,而且這個連接可以是常連接,不需要做回監聽,其接收信答息是伺服器發送回來的應答信息。除非需要做雙向伺服器,則需要兩個TCP/IP通道,在客戶端再建立一個伺服器並監聽,由伺服器端主動發起連接。
只要伺服器IP對外公開並可穿過防火牆,客戶端就可以主動連接伺服器。

3、什麼是C\S客戶端啊?

        Client/Server架構,即伺服器/客戶端架構。是大家熟知的軟體系統體系結構,通過將任務合理分配到Client端和Server端,降低了系統的通訊開銷,需要安裝客戶端才可進行管理操作。

        而CS客戶端就是以CS架構為基礎搭建的軟體客戶端!

        客戶端和伺服器端的程序不同,用戶的程序主要在客戶端,伺服器端主要提供數據管理、數據共享、數據及系統維護和並發控制等,客戶端程序主要完成用戶的具體的業務。

開發比較容易,操作簡便,但應用程序的升級和客戶端程序的維護較為困難。

相對於CS架構而言的市BS架構,在這里簡單給你提一下。

        即Browser/Server (瀏覽器/伺服器) 結構,是隨著Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶界面完全通過WWW瀏覽器實現。

客戶端基本上沒有專門的應用程序,應用程序基本上都在伺服器端。由於客戶端沒有程序,應用程序的升級和維護都可以在伺服器端完成,升級維護方便。由於客戶端使用瀏覽器,使得用戶界面「豐富多彩」,但數據的列印輸出等功能受到了限制。為了克服這個缺點,一般把利用瀏覽器方式實現困難的功能,單獨開發成可以發布的控制項,在客戶端利用程序調用來完成。

4、請問c語言socket編程客戶端如何與客戶端通信的啊

我告你個思路,就像是我想實現的QQ功能一樣。

建立一個伺服器Server,它用來負責轉發消息。
A,B,C都是客戶端
A想發送消息給B,就給Server發送(A,[B],"我是A,這是我給B的消息。"),Server收到後根據[B]將消息內容轉發給B;
A想給B,C發送群消息,就給Server發送(A,[B,C],"我是A,這是我給B和C發送的消息。"),Server收到後根據[B,C]將消息內容轉發給B和C。
Server想要給A,B,C都發送一條消息,必須都建立好連接後,分別給他們發送同一條消息。

伺服器開啟後,監聽socket連接,一旦有socket連接例如A請求連接,就把它交給一個線程例如SA去處理,然後它繼續監聽。SA線程就只負責處理Server和客戶端A之間的消息。
同理,SB線程就只負責處理Server和客戶端B之間的消息,SC線程就只負責處理Server和客戶端C之間的消息。
伺服器有一個方法transpond(String from,String[] to,String message),處理轉發消息。SA,SB,SC調用這個方法去實現通信。

5、C/S中伺服器與客戶端的關系

肯定是來客戶端把SQL數據發送到服源務器端啊!然後伺服器根據你所輸入的SQL語句執行,並返回結果。 你想想,C/S中,C 代表的是客戶端,S代表伺服器,客戶端肯定不能處理SQL 語句,因為客戶端不一定都安裝資料庫。一般資料庫都放在另一台計算機上。不知這么說你能不能理解!但願對你有幫助!

6、C語言socket編程要怎麼實現伺服器可以發消息給客戶端?

先要理解socket是什麼?
簡單的說socket是一個全雙工的通信通道,
即使用TCP或者UDP通信時均可以在發送消息的同時接受消息,
它不區分是否是伺服器。
根據這個概念你的問題就很好回答。
》當客戶端與伺服器連接後。有什麼方法使伺服器可以隨時隨地發消息給客戶端?
》我現在只能。客戶端發個消息給伺服器。伺服器才能發個消息給客戶端。也就是說客戶端不發消息。伺服器就沒法發消息給客戶端。
》求大牛給個思路。當連接後。客戶端與伺服器雙方可以隨時隨地通信!
使用多線程,一個維持接受邏輯,一個維持送信邏輯,即可完成同時接受及發送。
客戶端及伺服器端均做上述設置。
而你的做法是在一個線程中執行接受與送信,因此只能按照順序邏輯完成接收與送信。
關鍵點是多線程。

7、基於c語言,網路編程,伺服器接收客戶端1的信息發送給客戶端2

char buff2[1024*10];
int receiveLen;

/*調用accept函數,等待客戶端的連接*/
client_fd=accept(sockfd,(struct sockaddr *)&client_sockaddr,&sin_size
/*調用recv函數接收客戶端的請求*/
recvbytes=recv(client_fd,buf,BUFFER_SIZE,0)

typedef int (WINAPI ICEPUB_TCPSENDANDRECEIVETEXT)(char *sendBuff, int sendBuffLen,char *recvBuff,int recvMaxLen,char* serverIP,int serverPort);
ICEPUB_TCPSENDANDRECEIVETEXT *icePub_tcpSendAndReceiveText = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_tcpSendAndReceiveText=(ICEPUB_TCPSENDANDRECEIVETEXT *)GetProcAddress(hDLLDrv,"icePub_tcpSendAndReceiveText");
}
if(icePub_tcpSendAndReceiveText)
receiveLen=icePub_tcpSendAndReceiveText(buf,recvbytes),buff2,1024*10,"192.168.1.2",8000);
if(hDLLDrv)
FreeLibrary(hDLLDrv);

AfxMessageBox(buff2);

8、基於c語言,網路編程,伺服器接收客戶端1的信息發送給客戶端2

char
buff2[1024*10];
int
receiveLen;
/*調用accept函數,等待客戶端的連接*/
client_fd=accept(sockfd,(struct
sockaddr
*)&client_sockaddr,&sin_size
/*調用recv函數接收客戶端的請求*/
recvbytes=recv(client_fd,buf,BUFFER_SIZE,0)
typedef
int
(WINAPI
ICEPUB_TCPSENDANDRECEIVETEXT)(char
*sendBuff,
int
sendBuffLen,char
*recvBuff,int
recvMaxLen,char*
serverIP,int
serverPort);
ICEPUB_TCPSENDANDRECEIVETEXT
*icePub_tcpSendAndReceiveText
=
0;
HINSTANCE

hDLLDrv
=
LoadLibrary
("icePubDll.dll");
if(hDLLDrv)
{
icePub_tcpSendAndReceiveText=(ICEPUB_TCPSENDANDRECEIVETEXT
*)
GetProcAddress
(hDLLDrv,"icePub_tcpSendAndReceiveText");
}
if(icePub_tcpSendAndReceiveText)
receiveLen=icePub_tcpSendAndReceiveText(buf,recvbytes),buff2,1024*10,"192.168.1.2",8000);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
AfxMessageBox
(buff2);

9、C語言Socket伺服器怎麼給客戶端發消息

你的文件中的問題
// 會阻塞進程,直到有客戶端連接上來為止
// 既然是直到有客戶端連接上,那麼就要弄明白哪個是與客戶端連接的套接字
// sockClient就是與客戶端連接的套接字
sockClient = accept(sockServer, (SOCKADDR*)&addrClient, &len);
//接收並列印客戶端數據
recv(sockClient, recvBuf, 100, 0);
printf("%s\n", recvBuf);
// 所以此處,應該把sockServer改為sockClient
send(/*sockServer*/sockClient, sendBuf, 100, 0);

PS:伺服器客戶端通信,是要保持伺服器與客戶端的連接。
而不能這樣立即關閉,如果設置不對,立即關閉,緩沖區的數據是會丟失的。那客戶端也就不會再收到數據了。
你可以加Sleep(10000);來測是通信過程
//關閉socket
closesocket(sockClient);

10、C/S 客戶端/伺服器模式

不行,什copy么都喚不回,任憑古園
映在眼中也休想喚回這顆心,
叫它莫下海小心著清白色掩護的空紙,
任憑年輕的女人撫抱著孩子。
我要去!輪船啊,調整好你的杭植桅檣,
拉起錨來,開去找異國風光。
一個厭倦,經希望多少次打擊

與c伺服器客戶端相關的知識