C# Communication us/library/system.net.sockets.tcplistener(v=vs. 110).aspx 1.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 2 แบบจำลอง OSI OSI Model.
Advertisements

TCP/IP.
Transport Layer.
File Transfer (FTP), WWW, HTTP, DHCP.
Network Layer Protocal:
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
TCP/IP.
บทที่ 2 แบบจำลอง OSI OSI Model.
Lab 1 – 2 Protocols Guideline.
TCP Protocol.
Introduction to Server Services
Application Layer.
– Network operating systems and Protocols Choopan Rattanapoka.
การแก้ปัญหาการใช้งาน ADO กับ Database อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
JSP ติดต่อฐานข้อมูล.
ชนิดของเครือข่ายคอมพิวเตอร์ จัดทำโดย นาย ปรัชญา สิทธิชัยวงค์ ชั้น 4/6 เลขที่ 23 น. ส. สัตตบงกช ศรีวิชัย ชั้น 4/6 เลขที่ 22 จักรคำคณาทร จังหวัดลำพูน.
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
Server Object. 2 z ใช้ในการควบคุม และบริหารเว็บเซิร์ฟเวอร์ ซึ่งทำด้วยการเขียนสคริปต์ใน แอปพลิเคชั่น ASP ( โดยเรียกใช้เมธอด หรือกำหนดค่าพรอพเพอร์ตี้ของ.
OSI 7 LAYER.
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
ในเครือข่ายอินเทอร์เน็ต โปรแกรมประยุกต์ หลายชนิด มีการทำงานร่วมกันระหว่างเครื่อง คอมพิวเตอร์ ที่ต่ออยู่ในเครือข่าย โดยอาศัยเครือข่ายเป็น สื่อกลาง ในการติดต่อสื่อสารระหว่างกันและกัน.
Session 5: Case Study Session Dr. Nipat Jongsawat.
OSI Network Layer TCP/IP Internet Layer วิชาการสื่อสารข้อมูลและเครือข่าย นายวุฒิชัย คำมีสว่าง.
Network programming Asst. Prof. Dr. Choopan Rattanapoka
C# Communication
การสื่อสารข้อมูล.
2.1 Spanning Tree Protocol
เทคโนโลยีพื้นฐานของระบบสารสนเทศ
Case Study.
บทที่ 3 โพรโตคอล ทีซีพีและไอพี TCP / IP
Wireless Network เครือข่ายไร้สาย
Chapter 2 สถาปัตยกรรมเครือข่าย (Network Architecture)
แบบจำลองเครือข่าย (Network Models)
การสื่อสารข้อมูลทางคอมพิวเตอร์
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
อาจารย์อภิพงศ์ ปิงยศ บทที่ 8 : TCP/IP และอินเทอร์เน็ต Part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
อาจารย์อภิพงศ์ ปิงยศ บทที่ 8 : TCP/IP และอินเทอร์เน็ต Part2 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
Introduction to VB2010 EXPRESS
TCP/IP Protocol นำเสนอโดย นส.จารุณี จีนชาวนา
เครือข่ายคอมพิวเตอร์
Boson Netsim Simulator ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์
อาจารย์อภิพงศ์ ปิงยศ บทที่ 2 : แบบจำลองเครือข่าย (Network Models) part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
Week 10: Chapter 25: UDP MT Exam Grading
C# Part 0: Introduction to Revision Control
อาจารย์อภิพงศ์ ปิงยศ บทที่ 7 : TCP/IP และอินเทอร์เน็ต Part2 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
การพัฒนาการใช้งานในระบบเว็บ
เริ่มต้นด้วยอินเทอร์เน็ต
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
อาจารย์อภิพงศ์ ปิงยศ บทที่ 2 : แบบจำลองเครือข่าย (Network Models) Part3 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
อาจารย์อภิพงศ์ ปิงยศ บทที่ 7 : TCP/IP และอินเทอร์เน็ต Part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
อาจารย์อภิพงศ์ ปิงยศ บทที่ 5 : การตรวจจับข้อผิดพลาด การควบคุมการไหลของข้อมูล และการควบคุมข้อผิดพลาด Part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
ระบบบริการประชาชน กรมทางหลวงชนบท
การออกแบบระบบ System Design.
QUEUE คิวจะมีโครงสร้างแบบเชิงเส้นเหมือน stack แต่แตกต่างตรงที่ queue มีตัวชี้ 2 ตัวคือ หัว(Head) และหาง(Tail) โดยการใส่ข้อมูลเข้าและนำข้อมูลออก จะมีลักษณะ.
The Need for a Protocol Architecture (for example, see circuit / packet switching) ผู้รับต้องจัดเตรียมที่เก็บข้อมูล (memory) ยืนยันสิทธิใช้ hard disk.
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Java Translation Object and Class ในมุมมองคอมพิวเตอร์ Objects หรือ Instances หมายถึงวัตถุที่กำเนิดตัวตนจริงๆจากต้นแบบที่กำหนดโดยคลาส Object.
อาจารย์อภิพงศ์ ปิงยศ บทที่ 2 : แบบจำลองเครือข่าย (Network Models) Part2 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
Method and Encapsulation
Client/Server Application (FilE server)
อาจารย์อภิพงศ์ ปิงยศ ปฏิบัติการที่ 1 : การสร้างการเชื่อมต่อบนอุปกรณ์แอคเซสพอยต์ไร้สาย สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
เครือข่ายสารสนเทศ ครั้งที่ 2 แบบจำลองเครือข่าย
การให้บริการไฟล์ File Transfer Protocol
บทที่ 7 การประมวลผลอาร์เรย์
Open system Protocol concept TCP/IP TCP/IP Sub Protocol
ฟังก์ชันของโปรแกรม Computer Game Programming
Decision: Single and Double Selection (if and if-else statement)
ใบสำเนางานนำเสนอ:

C# Communication us/library/system.net.sockets.tcplistener(v=vs. 110).aspx 1

Outline Introduction to Socket Programming Network Protocol Stack IP, Port and Socket Client-Server Model Socket Programming 2

Network Protocol Stack (TCP/IP) TCP/IP Model Application Layer Transport Layer (TCP/UDP) Network Layer (IP) Link Layer Physical Layer 3 โปรแกรมต่างๆ จัดการโดยระบบปฏิบัติการ การส่งข้อมูลจริงไปยังฮาร์ดแวร์

4 Protocol Layering and Data ในแต่ละชั้นของโปรโตคอล จะมีการเพิ่ม Header เพื่อระบุรายละเอียดของข้อมูล ( จัดการโดย OS) สิ่งที่สนใจในคลาสนี้คือ Application Layer Application Source Destination M M M M H t H t H n H t H n H l M M M M H t H t H n H t H n H l Message Segment Datagram Frame Transport Network Link Physical Transport Network Link Physical IP and Port

TCP and UDP TCP Reliable Connection- Oriented Flow Control Congestion control UDP Unreliable Connectionle ss No Flow Control No Congestion Control 5

6 IP Address and Port A #210 ต. สุเทพ Applications/Servers Web Port 80 Mail Port 25 อ. เมือง จ. เชียงใหม่ B #415 IP Address Network No. Host Number 14/144 Clients Network Programming ที่อยู่ Apartment Port No. เบอร์ห้อง

7 Concept of Port Numbers เป็นการระบุที่อยู่ของ process ในแต่ละเครื่อง Port numbers สามารถ เลือกใช้ได้จาก Well-known (port ) Dynamic or private (port ) Servers ส่วนใหญ่จะมีการจอง Well-known port Client ต่างๆจะได้รู้จัก HTTP = 80, FTP = 21, Telnet = 23,... Clients ส่วนใหญ่จะใช้ dynamic ports OS จะเป็นผู้กำหนดให้เอง TCP/UDP IP Ethernet Adapter NTP daemon Web server port 123 port 80

Client-Server Application การติดต่อระหว่าง Client-Server จะผ่าน SocketAPI 8 TCP/UDP IP Ethernet Adapter Server TCP/UDP IP Ethernet Adapter Clients Socket API hardware OS space Application space ports

ส่วนประกอบของ Socket ที่อยู่ของเครื่อง (IP) ที่อยู่ของโปรแกรมในเครื่อง (Port) Address+Port = Socket 9 Connection socket pair ( :3479, :80) Server (port 80) Client Client socket address :3479 Server socket address :80 Client host address Server host address Port ฝั่ง Client ถูกกำหนดโดย OS Port ฝั่ง Server ต้องเป็น Port ที่ Client เข้าถึงได้

สรุป Socket คือ Socket คือการเชื่อมต่อการสื่อสาร ระหว่างจุดสองจุด ( เครื่องสองเครื่อง ) แบบไปกลับได้ระหว่างโปรแกรมสอง โปรแกรม (server กับ client) ภายในเครือข่ายเดียวกัน Server Socket Program เป็น โปรแกรมที่รันบนเครื่องที่มี socket ที่ผูกกับ Port number บนเครื่อง และรอ request ที่จะเข้ามาจาก client Client Socket Program จะต้องรู้ ว่า IP Address ของเครื่องที่ server socket program ทำงาน อยู่ และ port ที่เครื่องนั้นรอฟัง request ด้วย 10

Client-Server Model เมื่อมีการสร้างการ เชื่อมต่อระหว่าง server และ client ก็จะ ส่งข้อมูลผ่านทาง socket 11 ServerClient response Request (IP server, port)

12 TCP Client-Server Interaction socket() bind() listen() accept() write() read() TCP Server close() socket() TCP Client connect() write() read() close() connection establishment data request data reply end-of-file notification from UNIX Network Programming Volume 1, figure 4.1

ชนิดของการ เชื่อมต่อ ในการเขียน Socket Programming ใน C# นั้นมี Protocol ในการเชื่อมต่อนั้นมี 2 ชนิด TCP/IP UDP/IP ต่อไปเราจะมาลองทำเขียน socket programming โดย ใช้ TCP/IP 13

C# Socket Workshop Target => C# Chat Program Chat Server Chat Client Microsoft.Net framework มี namespace 2 ตัวที่ใช้จัดการกับ Internet protocol ทำให้โปรแกรมของเราสามารถส่ง ข้อมูลหรือรับข้อมูลผ่าน Internet ได้ using System.Net; using System.Net.Sockets; 14

C# Chat: Client- Server Model Client ใช้ C# Windows Form สร้างการเชื่อม ต่อไปยัง Server ส่ง request ไป ยัง Server รับ response จาก Server Server ใช้ C# Console Server จะรอ request จาก Client (Listen) เมื่อ Server ได้รับ request จาก client, Server จะส่ง response ไป ยัง Client 15

Server : Step 1- Create Socket เริ่มจากการระบุ IP, Port ที่ ต้องการใช้งาน และสั่งเปิดการรอ รับการติดต่อ (Listen) แบบ TCP // Set the TcpListener on port Int32 port = 13000; IPAddress localAddr = IPAddress.Parse(" "); TcpListener server=null; server = new TcpListener(localAddr, port); //Start listening for client request server.Start(); 16

Server: Step 2 - Listening ขั้นต่อไป เราต้องรอรับ request เรื่อยๆ เราจะสร้าง infinite loop สำหรับจัดการ request // Buffer for reading data Byte[] bytes = new Byte[256]; String data = null; while(true) { Console.Write("Waiting for a connection”); … } 17

Server: Step 3 - Accept Request เมื่อ server socket ได้รับ request จาก client ข้อมูลนั้น เราจะอ่านและเขียนด้วย NetworkStream // Perform a blocking call to accept requests. TcpClient client = server.AcceptTcpClient(); Console.WriteLine("Connected!"); data = null; // Get a stream object for reading and writing NetworkStream stream = client.GetStream(); 18

Server: Step 4 Get Request เมื่อมีการส่งข้อมูลจาก Client ให้ทำ การวนลูป รับข้อมูล ( เป็น Byte) ประมวลผล และส่งข้อมูลกลับไปยัง Client // Loop to receive all the data sent by the client. while((i = stream.Read(bytes, 0, bytes.Length))!=0) { // Translate data bytes to a ASCII string. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i); Console.WriteLine("Received: {0}", data); 19

NetworkStream. Read Method public override int Read( byte[] buffer, int offset, int size ) This method reads data into the buffer parameter and returns the number of bytes successfully read. If no data is available for reading, the Read method returns 0. buffer An array of type Byte that is the location in memory to store data read from the NetworkStream. offset The location in buffer to begin storing the data to. size The number of bytes to read from the NetworkStream. 20

Server: Step 5- Reply // Process the data sent by the client. data = data.ToUpper(); byte[] msg = System.Text.Encoding.ASCII.GetBytes(data); // Send back a response. stream.Write(msg, 0, msg.Length); Console.WriteLine("Sent: {0}", data ); 21

NetworkStream. Write Method public override void Write( byte[] buffer, int offset, int size ) The Write method starts at the specified offset and sends size bytes from the contents of buffer to the network. buffer An array of type Byte that contains the data to write to the NetworkStream. offset The location in buffer from which to start writing data. size The number of bytes to write to the NetworkStream. 22

Server Screen 23

24 TCP Client-Server Interaction socket() bind() listen() accept() write() read() TCP Server close() socket() TCP Client connect() write() read() close() connection establishment data request data reply end-of-file notification from UNIX Network Programming Volume 1, figure 4.1

Client:Step1 – Create form ใช้ Windows Form เราจะใช้ฟอร์มนี้เพื่อ รับค่า IP, ของ Server ที่เราจะติดต่อ ไป และส่งข้อมูลในฟอร์ม ไปที่ Server แสดงผลตอบกลับมา จาก Server 25

Client: Step 2 สร้าง Socket ติดต่อ Server using System.Net; using System.Net.Sockets; String server = textBox1.Text; String message = textBox2.Text;... Int32 port = 13000; TcpClient client = new TcpClient(server, port); 26

Client: Step3 ส่ง Request แปลงข้อมูลเป็น Byte และทำการส่งไป ทาง Socket ที่สร้างขึ้น // Translate the passed message into ASCII and store it as a Byte array. Byte[] data = System.Text.Encoding.ASCII.GetBytes(message); // Get a client stream for reading and writing. NetworkStream stream = client.GetStream(); // Send the message to the connected TcpServer. stream.Write(data, 0, data.Length); 27

Client: Step4 รอรับ และแสดงผล // Receive the TcpServer.response. // Buffer to store the response bytes. data = new Byte[256]; // String to store the response ASCII representation. String responseData = String.Empty; // Read the first batch of the TcpServer response bytes. Int32 bytes = stream.Read(data, 0, data.Length); responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); textBox3.Text = responseData; 28

29

Download Source Code Server u.ac.th/person/jakarin/do ku.php?id=trainningcsharp socketserverhttp:// u.ac.th/person/jakarin/do ku.php?id=trainningcsharp socketserver Client u.ac.th/person/jakarin/do ku.php?id=trainningcsharp socketclienthttp:// u.ac.th/person/jakarin/do ku.php?id=trainningcsharp socketclient 30

References TPCListener: us/library/system.net.sockets.tc plistener(v=vs.110).aspx Network Programming: a/CS640/F06/lectures.html Application Layer and Socket Programming: F13/ 31