服务端C# (VC#.NET 2005)
private void button1_Click(object sender, EventArgs e)
{
if (this.textBox1.Text == "")
{
MessageBox.Show("请输入端口号!");
}
else
{
int portNum = Convert.ToInt32(this.textBox1.Text);
TcpListener listener = new TcpListener(portNum);
listener.Start();
this.richTextBox1.AppendText("Waiting for connection..." + "/r");
TcpClient client = listener.AcceptTcpClient();
this.richTextBox1.AppendText("Connection accepted." + "/r");
NetworkStream ns = client.GetStream();
byte[] byteTime = Encoding.Unicode.GetBytes(this.textBox2.Text);
try
{
ns.Write(byteTime, 0, byteTime.Length);
ns.Close();
client.Close();
}
catch (Exception ee)
{
MessageBox.Show(ee.ToString());
}
listener.Stop();
}
}
客户端C++ (VC2005)
void CTecClientDlg::OnBnClickedbtnlogin()
{
WORD version;
WSADATA wsaData;
int rVal=0;
version=MAKEWORD(1,1);
WSAStartup(version,(LPWSADATA)&wsaData);
SOCKET theSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(theSocket==SOCKET_ERROR)
{
return;
}
SOCKADDR_IN serverInfo;
serverInfo.sin_family=PF_INET;
serverInfo.sin_addr.s_addr=inet_addr("192.168.0.3");
serverInfo.sin_port=htons(6603);
rVal=connect(theSocket,(LPSOCKADDR)&serverInfo,sizeof(serverInfo));
if(rVal==SOCKET_ERROR)
{
return;
}
wchar_t buf[8]={0};
memset(buf,0,8*sizeof(wchar_t));
char sendB[6]="hi";
send(theSocket,sendB,strlen(sendB),0);
int strLast=recv(theSocket,(char*)buf,8*sizeof(wchar_t),0);
AfxMessageBox((const wchar_t*)buf);
closesocket(theSocket);
WSACleanup();
}
本文提供了一个使用C#实现的服务端与C++实现的客户端之间的TCP通信实例。服务端通过指定端口监听并接受客户端连接,接收来自客户端的数据,并向客户端发送回应消息。
2706

被折叠的 条评论
为什么被折叠?



