(1)C#サーバーコード
システムを使用する;
System.Collections.Genericを使用する;
System.ComponentModelを使用します。
System.Dataを使用します。
System.Drawingを使用します。
System.Linqを使用する;
System.Textを使用します。
System.Windows.Formsを使用する;
System.Threadingを使用します。
System.Net.Socketsを使用する;
System.Netを使用する。
名前空間WindowsFormsApplication1
{ パブリック部分クラスForm1:フォーム {
プライベート静的バイト[]結果=新しいバイト[1024];
private static int myProt = 8885; //端口
静的ソケットserverSocket;
パブリックForm1()
/// <summary>
///监听客户端006接
/// </ summary>
private static void ListenClientConnect()
{ while(true) { Socket clientSocket = serverSocket.Accept(); clientSocket.Send(Encoding.ASCII.GetBytes( "Server Say Hello")); スレッドreceiveThread = new Thread(ReceiveMessage); receiveThread.Start(clientSocket); Thread.Sleep(1000); ブレーク; } }
/// <summary>
///メッセージの受信
/// </ summary>
/// <param name = "clientSocket"> </ param>
private static void ReceiveMessage(object clientSocket)
{ Socket myClientSocket =(Socket)clientSocket; while(true) { try { // clientSocketを介してデータを受信します intreceiveNumber = myClientSocket.Receive(result); Console.WriteLine( "Receive client {0} message {1}"、myClientSocket.RemoteEndPoint.ToString()、Encoding。ASCII .GetString(result、0、receiveNumber)); } catch(Exception ex)
{ Console.WriteLine(ex.Message); myClientSocket.Shutdown(SocketShutdown.Both); myClientSocket.Close(); ブレーク; } } }
}
}
(2)QTのC ++コード
#include "widget.h"
#include "ui_widget.h"
Widget :: Widget(QWidget * parent):
QWidget(parent)、
ui(new Ui :: Widget)
{ ui-> setupUi(this);
mp_clsTcpSocket = new QTcpSocket();
mp_clsTcpSocket-> connectToHost( "127.0.0.1"、8885);
connect(mp_clsTcpSocket、SIGNAL(readyRead())、this、SLOT(slot_readmesg()));
if(mp_clsTcpSocket-> waitForConnected(1000))
{ qDebug()<< "接続成功!";
}そうしないと{
qDebug()<< "接続に失敗しました!";
}
}
void Widget :: slot_WritMsgToServer(QString str)
{ mp_clsTcpSocket-> write(str.toLatin1()); }
void Widget :: slot_readmesg()
{
QByteArrayバッファー= mp_clsTcpSocket-> readAll();
qDebug()<< "msg:" <<バッファ;
}
Widget :: 〜Widget()
{ UIを削除; }
void Widget :: on_pushButton_clicked()
{ QString str = "111"; mp_clsTcpSocket-> write(str.toLatin1()); }
(3)最初にC#サーバーコードを起動します。