Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.