You are on page 1of 7

Khoa Mạng máy tính & Truyền thông - UIT

BÁO CÁO BÀI TẬP CÁ NHÂN


ỨNG DỤNG CHAT
TCP,UDP

Môn học: Lập trình mạng căn bản

Sinh viên thực hiện Phạm Thanh Lâm (22520744)


Thời gian thực hiện 15/3/2024 - 16/3/2024
Số câu đã hoàn thành 2/2

TRẢ LỜI CÁC CÂU HỎI

1. Ứng dụng chat UDP:


+ Ảnh chụp màn hình kết quả:
+ Source code:
 Client:
 using System.Net;
 using System.Net.Sockets;

2
 using System.Text;

 namespace BT2
 {
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }

 private void button1_Click(object sender, EventArgs e)
 {
 UdpClient udpClient = new UdpClient();
 IPAddress ipadd = IPAddress.Parse(textBox1.Text);
 int port = Convert.ToInt32(textBox2.Text);
 IPEndPoint ipend = new IPEndPoint(ipadd, port);
 Byte[] sendBytes = Encoding.UTF8.GetBytes(richTextBox1.Text);
 udpClient.Send(sendBytes, sendBytes.Length, ipend);
 richTextBox1.Text = "";
 }
 }
 }
 Server:
 using System.Net.Sockets;
 using System.Net;
 using System.Text;

 namespace Server
 {
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }
 private void button1_Click(object sender, EventArgs e)
 {
 serverThread();
 }

 public void serverThread()
 {
 int port = Convert.ToInt32(textBox1.Text);
 UdpClient udpClient = new UdpClient(port);
 while (true)
 {
 IPEndPoint IpEnd = new IPEndPoint(IPAddress.Any, 0);
 Byte[] recvBytes = udpClient.Receive(ref IpEnd);
 string Data = Encoding.UTF8.GetString(recvBytes);
 string mess = IpEnd.Address.ToString() + ":" +
 IpEnd.Port.ToString() + ": " + Data.ToString();
 textBox2.AppendText(mess + Environment.NewLine);
 }
 }
 }
 }

3
2. Ứng dụng chat TCP
- Ảnh chụp màn hình kết quả:

- Source code:
 Client:

4
 using System;
 using System.Net.Sockets;
 using System.Text;
 using System.Windows.Forms;

 namespace APPCHAT_TCP
 {
 public partial class Form1 : Form
 {
 public Form1()
 {
 InitializeComponent();
 }

 private TcpClient client;
 private NetworkStream ns;

 private void ConnectToServer()
 {
 try
 {
 client = new TcpClient("127.0.0.1", 8888);
 ns = client.GetStream();
 }
 catch (Exception ex)
 {
 MessageBox.Show("Lỗi: " + ex.Message);
 }
 }


 private void SendMessage()
 {
 try
 {
 byte[] buffer = Encoding.UTF8.GetBytes(txtMessageToSend.Text);
 ns.Write(buffer, 0, buffer.Length);
 ns.Flush();

 txtReceivedMessages.AppendText("You: " + txtMessageToSend.Text + Environment.NewLine);
 txtMessageToSend.Clear();
 }
 catch (Exception ex)
 {
 MessageBox.Show("Lỗi: " + ex.Message);
 }
 }

 private void btnSendMessage_Click_1(object sender, EventArgs e)
 {
 SendMessage();
 }

 private void btnConnectToServer_Click_1(object sender, EventArgs e)
 {
 ConnectToServer();
 }
 }
 }

5
 Server:
 using System;
 using System.Net;
 using System.Net.Sockets;
 using System.Text;
 using System.Threading;
 using System.Windows.Forms;


 namespace Server
 {
 public partial class Form1 : Form
 {
 private TcpListener server;
 private TcpClient client;
 private NetworkStream ns;
 private Thread listenThread;

 public Form1()
 {
 InitializeComponent();
 }


 private void StartServer()
 {
 try
 {
 server = new TcpListener(IPAddress.Any, 8888);
 server.Start();
 txtReceivedMessages.AppendText("Server đã bắt đầu. "+ Environment.NewLine);

 listenThread = new Thread(new ThreadStart(ListenForClients));
 listenThread.Start();
 }
 catch (Exception ex)
 {
 MessageBox.Show("Lỗi: " + ex.Message);
 }
 }

 private void btnStartServer_Click(object sender, EventArgs e)
 {
 StartServer();
 }

 private void ListenForClients()
 {
 try
 {
 client = server.AcceptTcpClient();
 ns = client.GetStream();

 byte[] receivedBuffer = new byte[1024];
 int byte_count;

 while ((byte_count = ns.Read(receivedBuffer, 0, receivedBuffer.Length)) > 0)
 {
 this.Invoke((MethodInvoker)delegate
 {

6
 string data = Encoding.UTF8.GetString(receivedBuffer, 0, byte_count);
 txtReceivedMessages.AppendText("Client: " + data + Environment.NewLine);
 });
 }
 }
 catch (Exception ex)
 {
 MessageBox.Show("Lỗi: " + ex.Message);
 }
 }

 }
 }

You might also like