CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 458

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();