Je suis fatigué de trouver quel est le problème avec mon code ... S'il vous plaît aidez-moi ici! J'essaie de créer une connexion TCP entre le client du serveur dans le réseau local. Ce qui se passe, c'est que le programme se bloque lorsque le client essaie de se connecter. S'il vous plaît voir le code:La connexion TCP a échoué
public void Go()
{
if (whatjob == true)
{
IPEndPoint server_ipEndPoint = new IPEndPoint(IPAddress.Any, PortNum);
server_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
server_socket.Bind(server_ipEndPoint);
try
{
server_socket.Listen(1);
server_GotClient = server_socket.Accept();
}
catch (SocketException e)
{
MessageBox.Show("Unable to listen...");
MessageBox.Show(e.ToString());
}
reading = new Thread(new ThreadStart(this.get_msg));
reading.Start();
}
if (whatjob == false)
{
IPEndPoint client_ipEndPoint = new IPEndPoint(IPAddress.Parse(IpAddress), PortNum);
client_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
client_socket.Blocking = true;
client_socket.Connect(client_ipEndPoint); //here it stops execution
//client_socket.BeginConnect(client_ipEndPoint, new AsyncCallback(NowConnected), client_socket);
}
catch (SocketException e)
{
MessageBox.Show("Unable to connect...");
MessageBox.Show(e.ToString());
return;
}
reading = new Thread(new ThreadStart(this.get_msg));
reading.Start();
}
Quoititre est bool ... vrai moyen de faire des moyens travail serveur et faux faire le travail client
cette fonction est à l'intérieur des fenêtres formulaire pour la fenêtre de chat. quand il atteint jusqu'à client_socket.connect (IPEndPoint), il est écrasé et même la fenêtre de chat est deformated ...
Fonction filetée
public void get_msg()
{
byte[] byte_message = new byte[1000];
string string_message = null;
int x = 0;
while (true)
{
if (server_GotClient != null)
{
x = server_GotClient.Receive(byte_message);
}
if (client_socket != null)
{
x = client_socket.Receive(byte_message);
}
if (x != 0)
{
string_message = Encoding.ASCII.GetString(byte_message);
this.richTextBox_GetMessage.Invoke(new MethodInvoker(delegate
{
richTextBox_GetMessage.Text = richTextBox_GetMessage.Text + "\nFriend: " + string_message;
}));
}
x = 0;
}
server_socket.Close();
}
S'il vous plaît aider au sujet de ce code. pour ajouter plus loin, je n'ai aucune connaissance des techniques asynchrones, aidez-moi avec quelques méthodes faciles.
Quelle était l'exception? –