C# Communication http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener(v=vs.110).aspx.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
The InetAddress Class.
Advertisements

Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
File I/O (1) โปรแกรมจะอ่านหรือเขียนข้อมูลผ่านท่อส่งข้อมูล (Stream)
C# Programming Exceed Camp: Day 3.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 7 มิถุนายน 2556 Text File Processing มหาวิทยาลัยเนชั่น.
Handling Exceptions & database
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Thread Thread ส่วนของ process ที่ให้ CPU ประมวลผล.
The ServerSocket Class ใช้ในการจัดทำเครื่องที่เป็นการบริการ ใช้ในการจัดทำเครื่องที่เป็นการบริการ โดยจะมี ช่วงชีวิตดังนี้ โดยจะมี ช่วงชีวิตดังนี้
Object Oriented Programming Handling Exceptions
เขียนโปรแกรมเพื่อแสดงข้อมูลพนักงาน ด้วย ADO.NET vs. DataReader
BCS 121 บท 5 การโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
Java Network Programming 1
คำสั่งวนซ้ำ.
Introduction to Flowchart
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
JSP ติดต่อฐานข้อมูล.
1.NET Framework Class อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
จัดทำโดย น. ส. ดวงกมล งามอยู่เจริญ เลขที่ 8 น. ส. ณัชชา เชื้อตา เลขที่ 6 เตรียมบริหารธุรกิจปี 1.
การรับและส่งค่าระหว่าง ฟอร์ม อาจารย์อุทัย เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
“Procedure guidance for Internet forensics coping with copyright arguments of client-server-based P2P models”
OSI 7 LAYER.
Java Network Programming – Network Operating Systems and Protocols Choopan Rattanapoka.
Session 5: Case Study Session Dr. Nipat Jongsawat.
1 XML & ASP.NET Nipat J Display XML data on the web Nipat J.
C# Communication us/library/system.net.sockets.tcplistener(v=vs. 110).aspx 1.
Timed Math Quiz. โปรแกรมสุ่มคำนวณเลขแข่งกับ เวลา.
Streams. Formatted output cout
เตชิษฐ์ เรือง ไพศาล.  คอมพิวเตอร์เป็นอุปกรณ์ไฟฟ้าที่ใช้ไฟฟ้า กระแสตรงทำงาน  ข้อมูลภายในเป็นข้อมูลดิจิตอล  …..  แทนข้อมูลเหล่านี้ด้วยแรงดันไฟฟ้า.
Network programming Asst. Prof. Dr. Choopan Rattanapoka
เทคโนโลยีพื้นฐานของระบบสารสนเทศ
การสื่อสารข้อมูลทางคอมพิวเตอร์
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
อาจารย์อภิพงศ์ ปิงยศ บทที่ 8 : TCP/IP และอินเทอร์เน็ต Part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
การติดต่อกับฐานข้อมูล(MySQL)
แนวข้อสอบ Final (จดด่วน)
IP-Addressing and Subneting
Introduction to VB2010 EXPRESS
IP-Addressing and Subneting
TCP/IP Protocol นำเสนอโดย นส.จารุณี จีนชาวนา
เครือข่ายคอมพิวเตอร์
C# Part 0: Introduction to Revision Control
วิธีการขอ User เพื่อใช้งาน OTP
เริ่มต้นด้วยอินเทอร์เน็ต
รายการ(List) [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
Chapter 5 การจัดการข้อผิดพลาด (Exception Handling)
C# and Excel.
อาจารย์อภิพงศ์ ปิงยศ บทที่ 7 : TCP/IP และอินเทอร์เน็ต Part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ อาจารย์อภิพงศ์
โครงสร้างภาษา C Arduino
อาจารย์อภิพงศ์ ปิงยศ บทที่ 1 : Introduction to Data Communication and Computer Network Part3 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
Network programming Asst. Prof. Dr. Choopan Rattanapoka
การเขียนโปรแกรมสั่งงานตัวควบคุม (Control)
Creating And Using Exceptions
The Collections Framework
Object-Oriented Programming Paradigm
Method and Encapsulation
Client/Server Application (FilE server)
เครือข่ายสารสนเทศ ครั้งที่ 2 แบบจำลองเครือข่าย
C#: Windows Forms App.
บทที่ 8 การใช้โปรแกรมสำเร็จรูป ในการสร้างระบบการสอนบนเครือข่าย “Moodle” อาจารย์เทพยพงษ์ เศษคึมบง สาขาวิชาเทคโนโลยีและนวัตกรรมการศึกษา pws.npru.ac.th/thepphayaphong.
การจัดบล๊อคและบัฟเฟอร์ (Blocking and Buffering)
Array: One Dimension Programming I 9.
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
ฟังก์ชันของโปรแกรม Computer Game Programming
C#: Windows Forms App.
การเขียนโปรแกรมคอมพิวเตอร์ แบบภาษาเชิงวัตถุ
ใบสำเนางานนำเสนอ:

C# Communication http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener(v=vs.110).aspx

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

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

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

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

Server Socket Program จะใช้ C# เขียนแบบ Console Server จะรอ request จาก Client เมื่อ Server ได้รับ request จาก client, Server จะส่ง response ไปยัง Client

Client Socket Program จะใช้ C# Windows Form เมื่อ Client ทำงาน มันจะสร้างการเชื่อมต่อไปยัง Server program ส่ง request ไปยัง Server รับ response จาก Server

Server Socket Program กำหนดว่าเราจะใช้ port หมายเลข 13000 สำหรับ server socket เราจะสร้าง instance ของ class TcpListener และสั่งให้ทำงาน // Set the TcpListener on port 13000. Int32 port = 13000; IPAddress localAddr = IPAddress.Parse("127.0.0.1"); TcpListener server=null; server = new TcpListener(localAddr, port); //Start listening for client request server.Start();

การอ่านเขียนข้อมูล ขั้นต่อไป เราต้องรอรับ request เรื่อยๆ เราจะสร้าง infinite loop สำหรับจัดการ request เมื่อ server socket ได้รับ request จาก client ข้อมูลนั้นเราจะอ่านและเขียนด้วย NetworkStream

using System; using System. IO; using System. Net; using System. Net using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Text;

class MyTcpListener { public static void Main() { TcpListener server=null; try { // Set the TcpListener on port 13000. Int32 port = 13000; IPAddress localAddr = IPAddress.Parse("127.0.0.1"); // TcpListener server = new TcpListener(port); server = new TcpListener(localAddr, port); // Start listening for client requests. server.Start(); // Buffer for reading data Byte[] bytes = new Byte[256]; String data = null;

// Enter the listening loop. while(true) { Console // Enter the listening loop. while(true) { Console.Write("Waiting for a connection... "); // 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(); int i; // 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); // 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); }

// Shutdown and end connection client // Shutdown and end connection client.Close(); } } catch(SocketException e) { Console.WriteLine("SocketException: {0}", e); } finally { // Stop listening for new clients. server.Stop(); Console.WriteLine("\nHit enter to continue..."); Console.Read();

Client Socket Program ใช้ window form Client จะเชื่อมต่อที่ port 13000 ของ server ที่มี IP 127.0.0.1 (เครื่องตัวเราเอง) Int32 port = 13000; TcpClient client = new TcpClient(server, port);

using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Text; using System.Windows.Forms;

public partial class Form1 : Form { public Form1() InitializeComponent(); } private void button1_Click(object sender, EventArgs e) String server = textBox1.Text; String message = textBox2.Text; try { // Create a TcpClient. // Note, for this client to work you need to have a TcpServer // connected to the same address as specified by the server, port // combination. Int32 port = 13000; TcpClient client = new TcpClient(server, port); // 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 // 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); Console.WriteLine("Sent: {0}", message); // 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 = textBox3.Text + responseData; Console.WriteLine("Received: {0}", responseData); // Close everything. stream.Close(); client.Close(); }

catch (ArgumentNullException ex) { Console.WriteLine("ArgumentNullException: {0}", ex); } catch (SocketException ex) Console.WriteLine("SocketException: {0}", ex); Console.WriteLine("\n Press Enter to continue..."); Console.Read();