前田稔(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 = "サーバーに接続出来ません";
}
}
|
![]()
![]()