收到的数据是乱码 咋回事啊??

zhyuanbaron 2005-07-25 10:14:03
大家帮我看看下面的两个程序 怎么收到的是乱码啊??
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdstarnet 2005-08-21
  • 打赏
  • 举报
回复
比盗版还便宜,星品网(http://www.cdstar.net)1000多款最新最热门软件游戏和影视原装光盘4元价,看看有没有您想要的!
morningsun 2005-07-31
  • 打赏
  • 举报
回复
请不要访问morningsun发的帖子中指出的 http://www.xiuwu.net/xc/?id=wchy0914网页,不小心被人误导,该网页涉嫌色情等违法内容,请版主删除之,谢谢!
iec 2005-07-31
  • 打赏
  • 举报
回复

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <winsock.h>
#include <dstring.h>
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
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( ); //停止使用winsock动态连接库
return;
}

/* The WinSock DLL is acceptable. Proceed. */
SOCKET sockserver;
sockserver = socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN sockaddrserver;
sockaddrserver.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //需要网络字节序
sockaddrserver.sin_family = AF_INET;
sockaddrserver.sin_port = htons(7001);

bind(sockserver,(sockaddr*)&sockaddrserver,sizeof(sockaddr));
listen(sockserver,5);

SOCKADDR_IN sockaddrclient;
int len = sizeof(sockaddr);
SOCKET sockclient; //定义连接套接字
sockclient = accept(sockserver,(sockaddr*)&sockaddrclient,&len);

while(m_flag)
{

char sendBuf[100];
int sBuflen = strlen(sendBuf);
sprintf(sendBuf,"welcome %s",inet_ntoa(sockaddrclient.sin_addr));
send(sockclient,sendBuf,sBuflen+1,0);
Sleep(1000);
char recvBuf[100];
recv(sockclient,recvBuf,strlen(recvBuf) ,0);

Memo1->Lines->Add(recvBuf);;
Sleep(1000);
//如果不是死循环,还需要调用closesocket(sockserver)
//及WSACleanup()
}

closesocket(sockclient);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
m_flag=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
m_flag=true;
}
//---------------------------------------------------------------------------
morningsun 2005-07-31
  • 打赏
  • 举报
回复
累了可以去聊聊天
http://www.xiuwu.net/xc/?id=wchy0914
iec 2005-07-31
  • 打赏
  • 举报
回复
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <winsock.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
int retValue;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}

if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( ); //停止使用winsock动态连接库
return;
}

SOCKET SockClient;
SockClient = socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN ServerAddr;
ServerAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
ServerAddr.sin_family = AF_INET;
ServerAddr.sin_port = htons(7001);
retValue = connect(SockClient,(sockaddr*)&ServerAddr,sizeof(sockaddr));

while(m_flag)
{

char RecvBuf[100];
recv(SockClient,RecvBuf,strlen(RecvBuf),0);

Memo1->Lines->Add(RecvBuf);
Sleep(1000);
send(SockClient,"this is yuan zhi ",strlen("this is yuan zhi ")+1,0);

Sleep(1000);
}

closesocket(SockClient);
WSACleanup();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
m_flag=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
m_flag=false;
}
//---------------------------------------------------------------------------
zhyuanbaron 2005-07-27
  • 打赏
  • 举报
回复
来人帮帮忙啊!分不够可以再给啊,这是个基础得问题啊

这段程序放在vc下就好使,是不是vcl 控件的问题啊,在控件里显示不出来
zhyuanbaron 2005-07-25
  • 打赏
  • 举报
回复
服务器:
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( ); //停止使用winsock动态连接库
return;
}

/* The WinSock DLL is acceptable. Proceed. */
SOCKET sockserver;
sockserver = socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN sockaddrserver;
sockaddrserver.sin_addr.S_un.S_addr = htonl(INADDR_ANY); //需要网络字节序
sockaddrserver.sin_family = AF_INET;
sockaddrserver.sin_port = htons(7001);

bind(sockserver,(sockaddr*)&sockaddrserver,sizeof(sockaddr));
listen(sockserver,5);

SOCKADDR_IN sockaddrclient;
int len = sizeof(sockaddr);
while(1)
{
SOCKET sockclient; //定义连接套接字
sockclient = accept(sockserver,(sockaddr*)&sockaddrclient,&len);

char sendBuf[100];
int sBuflen = strlen(sendBuf);
sprintf(sendBuf,"welcome %s",inet_ntoa(sockaddrclient.sin_addr));
send(sockclient,sendBuf,sBuflen+1,0);

char recvBuf[100];
recv(sockclient,recvBuf,strlen(recvBuf)+1 ,0);

Memo1->Lines->Add(recvBuf);;
closesocket(sockclient);
//如果不是死循环,还需要调用closesocket(sockserver)
//及WSACleanup()
}

zhyuanbaron 2005-07-25
  • 打赏
  • 举报
回复
客户端:
WORD wVersionRequested;
WSADATA wsaData;
int err;
int retValue;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 )
{
return;
}

/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 in wVersion since that is the version we */
/* requested. */

if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( ); //停止使用winsock动态连接库
return;
}

SOCKET SockClient;
SockClient = socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN ServerAddr;
ServerAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
ServerAddr.sin_family = AF_INET;
ServerAddr.sin_port = htons(7001);
while(1)
{
retValue = connect(SockClient,(sockaddr*)&ServerAddr,sizeof(sockaddr));

char RecvBuf[100];
recv(SockClient,RecvBuf,strlen(RecvBuf),0);

Memo1->Lines->Add(RecvBuf);

send(SockClient,"this is yuan zhi ",strlen("this is yuan zhi ")+1,0);

Sleep(2000);
}

closesocket(SockClient);
WSACleanup();

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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