Ⅰ java客服端(android), C#伺服器端,通過Socket傳輸結構體數據。怎麼實現
最簡單的方式用XML或者JSON.在Server端封裝成xml或者JSON格式.在Client端解析.
Ⅱ 關於C++ socket的問題,學習做一個socket的c++程序,想實現伺服器持續向客戶端發送結構體數據。
你把結構體struct直接當內容發了?
看看代碼
Ⅲ c++利用socket實現數據傳輸
可以傳遞結構體,比如:
struct A
{
int a;
int b;
};
struct A a;
send(s,(char*)&a,sizeof(a),0);
另一方接收到數據到buffer後,如buffer的位元組長度為buufersize,則
struct b;
memcpy(&b, buffer, buffersize);
就傳過去了。
求採納為滿意回答。
Ⅳ java伺服器和C的客戶端進行通信,伺服器要接受從客戶端發來的一個結構體,如何接收
你打算通過哪種方式進行通信?
如果你打算通過網路通信那麼java建立一個伺服器端套接字監聽一個埠,c語言寫的程序向這個伺服器埠發生數據即可
如果你打算通過管道通信,那麼c語言寫的程序向管道中寫入數據,java寫的程序從管道中讀取數據即可
Ⅳ C++ SOCKET發送結構體及接收
//方法很多,下邊舉個例子吧。還可以用union聯合進行數據類型的轉換,功能更加強大。你這種情況,就按照下邊處理吧。
user student
strcpy(student.name,"小明");
student.age=14;
student.sex=TRUE;
buffer = (BYTE*)malloc(sizeof(user));
BYTE *p;
p = (BYTE*)(&student);
for(int i = 0; i<sizeof(user); i++)
{
buffer[i] = p[i];
}
buffer[i] = 0;
Ⅵ 請問mfc socket網路編程 怎麼實現服務端向客戶端發送消息(指令)
這實際上是CS編程理念的東西。在CS概念中,S端不需要知道所有C端的具體信息,因為一個S對應多個C,而C也不能保障有固定的網路地址。
因此S端的邏輯,就是:監聽&響應。這和C端編程有很大不同(其實多數不同是因為概念問題,而不是代碼問題),我給你的建議就是,不要試圖使用C端的邏輯去嘗試S端,這樣不會是一個很好的S端程序,作為初學者,先嘗試按照標准邏輯實現程序之後,再嘗試花樣比較好,而Server端的編程,比客戶端更有完整的邏輯流程,還是先根據標准流程走吧。
簡單的說,CS的邏輯就是,在C沒有消息的時候,S不知道C在哪裡,因此標准C邏輯不適合S端。
Ⅶ 求一個簡單的C# winform TCP同步socket能成功傳輸結構體數據的客戶端和伺服器程序 急
結構體,可以先序列化成二進制,在傳輸,接收後,再反序列化。
如果你要著解決這個難題,可以用remoting 或wcf 看看。
Ⅷ socket套接字,如何發送一個結構體
1.TCP流式套接字的編程步驟
在使用之前須鏈接庫函數:工程->設置->Link->輸入ws2_32.lib,OK!
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);//創建套接字(socket)。
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//轉換Unsigned short為網路位元組序的格式
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
客戶端代碼如下:
#include <Winsock2.h>
#include <stdio.h>
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );載入套接字型檔
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup()( );
return;
}
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);創建套接字(socket)。
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));向伺服器發出連接請求(connect)。
Ⅸ C++send怎麼發送結構體,亂碼了;
調試模式下看下內存裡面發送和接受的數據是否一致。F9加斷點,F10.F11調試下。理論上發送和接受數據時,都要加個類型轉換。
Ⅹ php 怎麼用socket 怎麼向其他伺服器發送結構體數據 - PHP進階討論
3#
那類似於c++中這樣子的結構體要怎麼實現啊?[php]typedef
struct
Msg{typedef
BYTE
Type;typedef
short
SubType;enum{??HeadRen
=
10,??HeadLen
=
sizeof(unsigned
short)
+
HeadRen
*
sizeof(char),??FarTypeLen
=
sizeof(Type),??SubTypeLen
=
sizeof(SubType),??TypeLen
=
FarTypeLen
+
SubTypeLen,??MaxSize
=
4
*
1024,??MsgBodyLen
=
MaxSize
-
HeadLen
-
TypeLen};struct
MsgHeader{??unsigned
short
msgLen;??char
Rendance[HeadRen];??MsgHeader()??{?
?memset(this,
0,
sizeof(*this));??//初始化清零??}??void
FillInHeaderV1(int
msgType,
int
bodyLen,
int
isFinish
=
1)??{?
?int
count
=
Logger::snprintf((char*)this,
HeadLen
+
TypeLen,
\"%d
%d
%d
0\",
msgType,
bodyLen,
isFinish);?
?while(count
<
HeadLen
+
TypeLen)?
?{?
?
((char*)(this))[count++]
=
\'0\';?
?}????}}MsgHead;struct
MsgCont{??Type
type;??SubType
subType;??char
msgBody[MsgBodyLen];}MsgContent;}NetMessage;[/php]