用标准的Socket接收数据,怎样处理中文问题?

needlgy 2003-09-15 02:11:59
请帮助我。
...全文
55 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
needlgy 2003-09-17
  • 打赏
  • 举报
回复
怎么设置采用的编码方按和字符集呢?
lostgdi731 2003-09-16
  • 打赏
  • 举报
回复
留下你的E-mail我给你发个例子.
needlgy 2003-09-16
  • 打赏
  • 举报
回复
我的mail是:needx@263.net
多谢
howtotell 2003-09-15
  • 打赏
  • 举报
回复
整个思想都是错的,上网搜索一下,例子一大堆。
Fly1980 2003-09-15
  • 打赏
  • 举报
回复
这样也行吗?
server端不用accept吗?
我看不懂.
needlgy 2003-09-15
  • 打赏
  • 举报
回复
谢谢大家,我是新手,所以遇到问题就到这里来请教了,我将源码贴在下面,大家给我看看应该怎么处置它呢,他才愿意将中文给我显示出来。

WSADATA ws;
SOCKET s;
int iResult;
long lResult;
struct sockaddr_in addr;
char *strSubAddr;
char strBuffer[100];

lResult = WSAStartup(0x0101,&ws);
s = socket(AF_INET,SOCK_STREAM,0);

addr.sin_family = AF_INET;
addr.sin_port = htons(atoi(m_strPort));
addr.sin_addr.s_addr = inet_addr(m_strIp);//"127.0.0.1");
iResult=connect(s,(struct sockaddr *)&addr, sizeof(addr));
iResult=connect(s,(struct sockaddr *)&addr, sizeof(addr));
if(SOCKET_ERROR == iResult)
{
// 连接失败
WSACleanup();
return FALSE;
}
else
{
// 连接成功后发送数据
iResult = send(s, strSubAddr,strlen(strSubAddr),0);
shutdown(s,SD_SEND);
CStdioFile sf("recieve.xml", CFile::modeCreate |CFile::modeWrite);
do
{
strset(strBuffer,' ');
iResult = recv(s,strBuffer,sizeof(strBuffer),0);

sf.Write(strBuffer,100);
} while( iResult !=0 );
sf.Close();
}

WSACleanup();
xiaohyy 2003-09-15
  • 打赏
  • 举报
回复
socket传输的数据都是简单的char型,你在接收时收到的是char型。。

具体怎么处理由你采用的编码方按和字符集了
flinming 2003-09-15
  • 打赏
  • 举报
回复
我是觉得没有什么区别,反正存取都是byte的
kof99th 2003-09-15
  • 打赏
  • 举报
回复
用unicode 不就没事了?
windbells 2003-09-15
  • 打赏
  • 举报
回复
没什么区别,不过如果接收时不是全部接收的话就要考虑汉字的编码问题了。可以考虑采用UTF8编码,比较好定界
feeboby 2003-09-15
  • 打赏
  • 举报
回复
你要怎么处理?
dddd8888 2003-09-15
  • 打赏
  • 举报
回复
一样吧

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧