458
Chương 11: Lập trình mạng
// Đợi yêu cầu kết nối, và trả về một Socket.
Socket socket = listener.AcceptSocket();
Console.WriteLine("Connection accepted.");
// Tạo network stream.
NetworkStream stream = new NetworkStream(socket);
// Tạo BinaryWriter để ghi ra stream.
BinaryWriter w = new BinaryWriter(stream);
// Tạo BinaryReader để đọc từ stream.
BinaryReader r = new BinaryReader(stream);
if (r.ReadString() == ClientMessages.RequestConnect) {
w.Write(ServerMessages.AcknowledgeOK);
Console.WriteLine("Connection completed.");
// Lấy địa chỉ IP của client.
Console.WriteLine("The client is from IP address: " +
((IPEndPoint)socket.RemoteEndPoint).Address.ToString());
Console.Write("The client uses local port: " +
((IPEndPoint)socket.RemoteEndPoint).Port.ToString());
while (r.ReadString() != ClientMessages.Disconnect)
{}
Console.WriteLine();
Console.WriteLine("Disconnect request received.");
w.Write(ServerMessages.Disconnect);
} else {
Console.WriteLine("Could not complete connection.");
}
// Đóng socket.
socket.Close();