前田稔(Maeda Minoru)の超初心者のプログラム入門
public class MyForm : Form { //☆ NowTime Server Object Class public class Server { public TcpListener listener; public TcpClient client; // Constructor public Server() { try { //サーバーを開始 Int32 port = 9999; IPAddress localAddr = IPAddress.Parse("127.0.0.1"); listener = new TcpListener(localAddr, port); listener.Start(); client = new TcpClient(); //接続待機 Console.WriteLine("接続待機中"); } catch(SocketException e) { Console.WriteLine(e.Message); } } |
// NowTime メソッド public void NowTime() { if (listener!=null) { if (listener.Pending()) { //接続 client = listener.AcceptTcpClient(); Console.WriteLine("接続されました"); NetworkStream stream = client.GetStream(); //メッセージを送信 Byte[] data = System.Text.Encoding.UTF8.GetBytes(DateTime.Now.ToString()); stream.Write(data, 0, data.Length); client.Close(); } } } } |
//☆ MyForm Program private Timer timer1; private System.ComponentModel.IContainer components; Server server; //Server Object public MyForm() { InitializeComponent(); server = new Server(); timer1.Start(); } // Timer 割り込みで接続要求を確認する private void timer1_Tick(object sender, EventArgs e) { server.NowTime(); } |
public MyForm() { InitializeComponent(); } |
private void Button1_Click(object sender, EventArgs e) { try { //サーバーに接続 Int32 port = 9999; TcpClient client = new TcpClient("127.0.0.1", port); //サーバーからメッセージを受信 NetworkStream stream = client.GetStream(); Byte[] bytes = new Byte[9]; int i; String msg = ""; while((i = stream.Read(bytes, 0, bytes.Length))!=0) { String data = System.Text.Encoding.UTF8.GetString(bytes, 0, i); msg = msg + data; } textBox1.Text = msg; client.Close(); } catch { textBox1.Text = "サーバーに接続出来ません"; } } |