『壹』 c語言Socket伺服器怎麼給客戶端發消息
socket
伺服器給指定的客戶端發消息該怎麼處理(tcp)(c語言)
多個客戶端之間進行通訊,通過伺服器轉發的形式,現在客戶端1請求向客戶端2發送消息,先把消息發送到伺服器,伺服器怎麼才能把消息轉發到客戶端2而不是轉發給客戶端3或者他自己。
『貳』 不明白C語言的SendMessage函數
不是等於VM_ 應該是WM_。
WM指的是WindowMessage 即windows消息。
以WM_開頭的是預定義的windows消息。
windows是基於消息驅動的操作系統,當程序接收到系統發送的消息後會做出相應的響應。
例如程序向窗口發送一個 WM_PAINT消息,則窗口會重新繪制。
『叄』 如何用C語言實現快速向網路發送數據
你可以多線程和多進程實現呀,這樣可以將一台主機的性能最大化的體現出來,並且能夠並發數據,能夠達到你的需求。
『肆』 用C語言,向一個指定的的窗口發送固定的信息,怎麼實現啊 希望能提供源代碼參考。希望大家不吝賜教
先取得窗口的句柄,如果是前台窗口,可以用 GetForegroundwindow獲取!
如果知道窗口名等,也可以用FindWindow獲取窗口句柄!
然後用SendMessage發送消息即可
『伍』 怎麼用C語言向指定窗口發送消息
如果是簡單情況, 需要輸入的數據就在一個文件里放著。 比如 test.dat , 而要接收數據的程序文件叫 run.exe
可以這樣 運行這個程序: run.exe < test.dat
這樣文件內容就作為run.exe運行時的輸入了。
如果是復雜點的情況,需要輸入的數據是隨時算的, 可以寫個「輸出所需數據」的程序, 就是做數據然後 printf出來就可以(別忘了回車) 。 這個程序比如叫 data.exe
可以這樣運行兩個程序: data.exe | run.exe
這樣 data.exe輸出的內容就作為run.exe運行時的輸入了
『陸』 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);
『柒』 求C語言高手,實現一個簡單的TCPIP程序以實現兩台計算機之間的聊天通信,
你上面給出的代碼其實就是MSDN裡面的演示代碼,不過不完整,只演示了兩個函數的使用,我給你看看我寫的TCP通訊程序,可以在同一個區域網內的兩台不同計算機之間聊天:
這其實就是某本將網路通訊的教程裡面的例子,不過是我自己重寫了一遍,下面給你代碼:
========================
下面是公共代碼:
========================
#ifndef__CINITSOCK__H__
#define__CINITSOCK__H__
#include<winsock2.h>
#include<iphlpapi.h>
#pragmacomment(lib,"ws2_32.lib")
#pragmacomment(lib,"iphlpapi.lib")
classCInitSock
{
public:
CInitSock(intnMinorVer=2,intnMajorVer=2)
{
WSADATAwsData;
WORDwVer=MAKEWORD(nMinorVer,nMajorVer);
if(0!=WSAStartup(wVer,&wsData))exit(0);
}
~CInitSock()
{
WSACleanup();
}
};
#endif
========================
下面是客戶端的代碼:
=======================
#include"CInitSock.h"
#include<iostream>
usingnamespacestd;
CInitSockg_Sock;
voidmain()
{
SOCKETsockClient=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(INVALID_SOCKET==sockClient)
return;
sockaddr_insockAddr;
sockAddr.sin_family=AF_INET;
sockAddr.sin_port=htons(4567);
sockAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
if(-1==connect(sockClient,(sockaddr*)&sockAddr,sizeof(sockAddr)))
{
cout<<"connectfailed"<<endl;
return;
}
while(true)
{
charszBuf[MAX_PATH];
ZeroMemory(szBuf,sizeof(szBuf));
cout<<"YouSay:";
cin>>szBuf;
if(SOCKET_ERROR ==send(sockClient,szBuf,MAX_PATH,0))
{
cout<<"sendfailed"<<endl;
return;
}
intnRecvLen=recv(sockClient,szBuf,MAX_PATH,0);
if(nRecvLen>0)
{
//szBuf[nRecvLen]='