这是wxWidgets论坛的中文版本。在这里,您可以用您的母语汉语讨论上面任一子论坛所涉及的所有关于wxWidgets的话题。欢迎大家参与到对有价值的帖子的中英互译工作中来!
-
hats
- Experienced Solver
- Posts: 70
- Joined: Wed Sep 16, 2009 3:50 pm
- Location: China
-
Contact:
Post
by hats »
一个简单的wxSocketClient和wxSocketServer.
现在能互相发文本信息,互相传送文件。
发送文本信息的我用的代码如下:
按钮事件 Client::OnButton:
Code: Select all
const wxChar* buf;
wxString text = TextCtrl1->GetValue();//自定义的输入控件
buf = text.c_str();
wxUint32 len = (wxStrlen(buf)+1)*sizeof(wxChar);//要发送数据的长度
clientSocket->Write(buf,len);
向服务器传送文件我用的代码如下:
按钮事件 Client::OnButton:
Code: Select all
wxFile file;
file.Open(wxT("test.txt"),wxFile::read);//读取打开
size_t fileSize = file.Length();//文件大小
wxUint8* buffer = new wxUint8[fileSize];
size_t len = file.Read(buffer,fileSize);//读取指定大小到缓存
clientSocket->Write(buffer,len);//发送
delete []buffer;
wxSocketServer端用wxSocketServer::Read()能读取wxChar*和wxUint8*的数据。
但是服务器如何分辨接收数据类型呢?如果是wxChar*就直接显示,如果是wxUint8*就读取数据,保存为一个文件。
wx2.8.11
Win XP GCC 4.4.1/VC2005
Ubuntu 10.04 GCC 4.4.3
-
chendongbox
- Earned a small fee
- Posts: 17
- Joined: Sun Jan 31, 2010 2:00 pm
Post
by chendongbox »
是不是需要自定义一下标志啊,先发送4byte类型标志与4byte长度标志。
-
hats
- Experienced Solver
- Posts: 70
- Joined: Wed Sep 16, 2009 3:50 pm
- Location: China
-
Contact:
Post
by hats »
怎么发送标志呢?发送文件前先发一个数据,说明它是个文件?
wx2.8.11
Win XP GCC 4.4.1/VC2005
Ubuntu 10.04 GCC 4.4.3
-
hats
- Experienced Solver
- Posts: 70
- Joined: Wed Sep 16, 2009 3:50 pm
- Location: China
-
Contact:
Post
by hats »
无人..发到英文板块去,看看情况怎么样。
wx2.8.11
Win XP GCC 4.4.1/VC2005
Ubuntu 10.04 GCC 4.4.3