Ik ben nog niet zo lang begonnen met het leren van C#. Ik lees het boek C# Grand Cru, daar leer ik C# uit. Ook ben ik zelf wat dingetjes aan het aankloten zoals nu, ik was aan het knutselen met sockets. Ik wil een simpele server maken die een berichtje kan ontvangen en kan afdrukken op het scherm. Met de client kan je een berichtje sturen. Als ik de server start en daarna de client dan staat er zoals ik wil: Client connected to 192.168.1.2:8888. Dan komt er het bericht wat voor string ik naar de server wil sturen, dan vul ik iets randoms in en ram ik op enter. En dan......niks.
Het berichtje komt dus waarschijnlijk niet aan bij de server. Maar misschien ligt het ook wel aan de client. Maar er is dus wel een connectie tussen de server en de client. Ik heb zelf al geprobeerd het probleem op te lossen maar ik kan geen mogelijke fout vinden. Een error bij het compilen geeft hij in ieder geval niet. Het is dus een structurele fout.
SERVER:
CLIENT:
Ik hoop dat iemand mij met dit probleem kan helpen.
Ps. nog even een plaatje voor de duidelijkheid:
*Klikje*
Het berichtje komt dus waarschijnlijk niet aan bij de server. Maar misschien ligt het ook wel aan de client. Maar er is dus wel een connectie tussen de server en de client. Ik heb zelf al geprobeerd het probleem op te lossen maar ik kan geen mogelijke fout vinden. Een error bij het compilen geeft hij in ieder geval niet. Het is dus een structurele fout.
SERVER:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
| using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.IO; public class SocketListener { // Variable for incoming data public static string data = null; public static void StartListening() { // Buffer for incoming data Byte[] buffer = new Byte[1024]; // Get the hostname IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipAddress = ipHostInfo.AddressList[0]; IPEndPoint ipEnd = new IPEndPoint(ipAddress, 8888); // Create the listener Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { // Bind the listener s.Bind(ipEnd); // Start the listener s.Listen(10); while (true) { Console.WriteLine("Server active"); Console.WriteLine("Server address: {0}:{1}", ipHostInfo.AddressList[0].ToString(), 8888); Console.WriteLine("Waiting for response from the client!"); Socket handler = s.Accept(); data = null; // An incomming connection while (true) { buffer = new Byte[1024]; int BytesRec = handler.Receive(buffer); data += Encoding.ASCII.GetString(buffer, 0, BytesRec); } Console.WriteLine("Received message: {0}", data); Byte[] msg_back = Encoding.ASCII.GetBytes(data); handler.Send(data); handler.Shutdown(SocketShutdown.Both); handler.Close(); } } catch (Exception e) { Console.WriteLine(e.Message); } } public static void Main() { StartListening(); Console.ReadKey(); } } |
CLIENT:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.IO; public class Socket_Server { public static void Client_Send() { // Create a buffer for the message Byte[] buffer = new Byte[1024]; // Start connection to server try { IPHostEntry hostIP = Dns.Resolve(Dns.GetHostName()); IPAddress hostAddress = hostIP.AddressList[0]; IPEndPoint endIP = new IPEndPoint(hostAddress, 8888); // Create the socket Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { s.Connect(endIP); Console.WriteLine("Client connected to {0}", s.RemoteEndPoint.ToString()); // Encode the data to send. Console.WriteLine("Enter a string to send to the server:"); string input = Console.ReadLine(); byte[] msg_bytes = Encoding.ASCII.GetBytes(input); // Send the data s.Send(msg_bytes); // Receive the response int bytesRec = s.Receive(buffer); Console.WriteLine("Send string: {0}", Encoding.ASCII.GetString(buffer, 0, bytesRec)); s.Shutdown(SocketShutdown.Both); s.Close(); } catch (Exception e) { Console.WriteLine(e.Message); } } catch (Exception e) { Console.WriteLine(e.Message); } } public static void Main() { Client_Send(); Console.ReadKey(); } } |
Ik hoop dat iemand mij met dit probleem kan helpen.
Ps. nog even een plaatje voor de duidelijkheid:
*Klikje*