You are on page 1of 3

Thc hnh Mng my tnh

GV.Trn Ng Nh Khnh

LAB 7: SOCKET UDP


Kin thc yu cu: Giao thc UDP, TCP Cc kin thc v socket (port) Ch : 1. Sinh vin s dng ngn ng lp trnh C# trn mi trng Visual Studio 2005. 2. Np bi bo co thc hnh. Yu cu: Sau khi hon thnh Lab 3 sinh vin phi nm r: To socket UDP ti server v client. Gi v nhn d liu trn socket va to. Mt s lp i tng quan trng: 1) IPAddress: dng biu din mt a ch IP Phng thc khi to mc nh: public IPAddress(long address) 2) IPEndPoint: i tng biu din mt cp a ch IP v port, dng gn kt mt socket n a ch cc b hoc kt ni socket vi a ch t xa. Phng thc khi to:
IPEndPoint(long address, int port) IPEndPoint(IPAddress address, int port)

3) Socket:
Socket(AddressFamily af, SocketType st, ProtocolType pt)

V d:

AddressFamily: xc nh loi mng (network type), i vi IP mang gi tr InterNetwork SocketType: loi ca kt ni (Dgram, Stream,) ProtocolType: kt hp vi SocketType xc nh giao thc UDP, TCP,

Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

Phn 1: Chng trnh socket Server To socket Gn kt (bind) socket vo mt IPEndPoint Gi v nhn d liu
static void Main(string[] args) { int recv; byte[] data = new byte[1024]; IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050); Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); newsock.Bind(ipep); Console.WriteLine("Doi phia Client gui yeu cau..."); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint Remote = (EndPoint)(sender); recv = newsock.ReceiveFrom(data, ref Remote); Console.WriteLine("Nhan yeu cau ket noi tu may: {0}",Remote.ToString());

Thc hnh Mng my tnh

GV.Trn Ng Nh Khnh

Console.WriteLine(Encoding.ASCII.GetString(data,0,recv)); string welcome="Ket noi thanh cong!"; data = Encoding.ASCII.GetBytes(welcome); newsock.SendTo(data, data.Length, SocketFlags.None, Remote); while (true) { data = new byte[1024]; recv=newsock.ReceiveFrom(data,ref Remote); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); newsock.SendTo(data, recv, SocketFlags.None, Remote); } }

Phn 2: Chng trnh socket Client To socket Gi v nhn d liu t port ang ch ca server
static void Main(string[] args) { byte[] data = new byte[1024]; string input, stringData; IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9050); Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); string welcome = "Client gui yeu cau...."; server.SendTo(Encoding.ASCII.GetBytes(welcome), SocketFlags.None, ipep); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint Remote = (EndPoint)sender; data = new byte[1024]; int recv = server.ReceiveFrom(data, ref Remote); Console.WriteLine("Nhan thong diep tu may: {0}", Remote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data)); while (true) { input = Console.ReadLine(); if (input == "exit") break; data=Encoding.ASCII.GetBytes(input); server.SendTo(data, data.Length, SocketFlags.None, Remote); data = new byte[1024]; recv = server.ReceiveFrom(data, ref Remote); stringData = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine(stringData); } Console.WriteLine("Ket thuc"); server.Close(); } }

Thc hnh 1) Thc thi hai chng trnh trn ti cng mt my, kim tra vic truyn d liu gia chng trnh server v client. Dng lnh netstat kim tra trng thi cc port khi chng trnh ang chy.

Thc hnh Mng my tnh

GV.Trn Ng Nh Khnh

2) Thay i cc thng s a ch IP v port thch hp thc thi chng trnh server v client trn cc my khc nhau.

You might also like