Presentation is loading. Please wait.

Presentation is loading. Please wait.

網路程式設計 - C# 版 日期 : 2018/12/4.

Similar presentations


Presentation on theme: "網路程式設計 - C# 版 日期 : 2018/12/4."— Presentation transcript:

1 網路程式設計 - C# 版 日期 : 2018/12/4

2 簡單的網路層次圖 TCP : Socket, ServerSocket
UDP : DatagramSocket, DatagramPacket IP : InetAddress, URL 2 陳鍾誠 /12/4

3 詳細的網路層次圖 URL Socket ServerSocket DatagramSocket DatagramPacket
InetAddress 3 陳鍾誠 /12/4

4 Socket 程式設計模型 Request 請求 Client Server Response 回覆 4 陳鍾誠 /12/4

5 C# Socket Programming IP: Socket (插座) : IPEndPoint TCP socket :
Socket  TCP Client ServerSocket  TCP Server UDP Socket : DatagramSocket  Udp Client , Udp Server DatagramPacket  Udp packet 5 陳鍾誠 /12/4

6 TCP Socket Programming
Connect() Receive() Send() Close() Server 同樣是用 Socket 物件 Bind() Listen() Accept() RemoteEndPoint 6 陳鍾誠 /12/4

7 最簡單的 Client-Server 網路程式
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(args[0]), 20); Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); server.Connect(ipep); while(true) { string input = Console.ReadLine(); if (input == "exit") break; byte[] data = Encoding.ASCII.GetBytes(input); server.Send(data); } Console.WriteLine("Disconnecting from server..."); server.Shutdown(SocketShutdown.Both); server.Close(); IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 20); Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); newsock.Bind(ipep); newsock.Listen(10); while(true) { Socket client = newsock.Accept(); IPEndPoint clientep = (IPEndPoint) client.RemoteEndPoint; // create a new thread and then receive message. TcpListener listener = new TcpListener(client); Thread thread = new Thread(new ThreadStart(listener.run)); thread.Start(); } public class TcpListener { public void run() { while (true) byte[] data = new byte[1024]; int recv = socket.Receive(data); if (recv == 0) break; Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); } 7


Download ppt "網路程式設計 - C# 版 日期 : 2018/12/4."

Similar presentations


Ads by Google