私は、ネットワークストリームを使用してクライアントサーバー文字列を送受信することについてでした。そして、threadとthread.joinを使用して、1000クライアントを1つのアプリケーションに置き換えたいと思います。しかし、私はこの問題を解決することはできません。返信いただきありがとうございます。
private void button1_Click(object sender, RoutedEventArgs e)
{
sc = new SocketMe();
sc.socketStart();
for (int i = 0; i < 10; i++)
{
//sc = new SocketMe();
//this.Dispatcher.Invoke((Action)(() =>
//{
nomor[i] = new Thread(sc.execution);
nomor[i].Start(10);
//}));
}
}
public class SocketMe
{
public NetworkStream serverStream;
MainWindow mw = new MainWindow();
public void socketStart()
{
mw.clientSocket = new TcpClient();
try
{
mw.clientSocket.Connect("localhost", 4000);
}
catch (Exception e)
{
//mw.label3.Content = "Error ...." + e.StackTrace;
}
}
public void StringtoSend(String x)
{
try
{
socketStart();
serverStream = mw.clientSocket.GetStream();
byte[] outStream = System.Text.Encoding.ASCII.GetBytes(x);
serverStream.Write(outStream, 0, outStream.Length);
serverStream.Flush();
byte[] inStream = new byte[10025];
serverStream.Read(inStream, 0, (int)mw.clientSocket.ReceiveBufferSize);
string returndata = System.Text.Encoding.ASCII.GetString(inStream);
//textBox2.Text = "Data from Server : " + returndata;
Console.WriteLine("Data from Server : " + returndata);
}
catch (Exception ex)
{
//mw.label3.Content = ex.StackTrace;
}
}
public void execution(object data)
{
socketStart();
string[] pertanyaan = { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" ,"'{0}'"};//isi one dengan pertanyaan-pertanyaan yang diinginkan
int i;
for (i = 0; i < 10; i++)
{
StringtoSend(pertanyaan[i]);
Thread.Sleep(1000);
}
}
}