■ 受信側
デザイン
* TextBox x 1
* Button x 2
* Timer x 1
サンプル
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;
namespace SampleListener
{
public partial class Form1 : Form
{
private TcpListener tcpListener;
public Form1()
{
InitializeComponent();
var localAddress = IPAddress.Parse("127.0.0.1");
this.tcpListener = new TcpListener(localAddress, 4443);
}
private void button3_Click(object sender, EventArgs e)
{
System.Reflection.Assembly assembly =
System.Reflection.Assembly.GetExecutingAssembly();
System.Drawing.Icon icon = new System.Drawing.Icon(
assembly.GetManifestResourceStream("Icons.SampleIcon.png"));
this.Icon = icon;
}
private void button1_Click(object sender, EventArgs e)
{
this.textBox1.Text =
this.textBox1.Text + Environment.NewLine +
"Starting!";
try
{
this.timer1.Start();
this.tcpListener.Start();
}
catch (Exception ex)
{
MessageBox.Show("Error : " + ex.Message);
}
}
private void button2_Click(object sender, EventArgs e)
{
this.textBox1.Text =
this.textBox1.Text + Environment.NewLine +
"Stopping!";
try
{
this.timer1.Stop();
this.tcpListener.Stop();
}
catch (Exception ex)
{
MessageBox.Show("Error : " + ex.Message);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
if (!this.tcpListener.Pending())
{
return;
}
using (var client = this.tcpListener.AcceptTcpClient())
{
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[255];
string recivingData = string.Empty;
while (true)
{
if (stream.DataAvailable)
{
int length = stream.Read(buffer, 0, buffer.Length);
recivingData = recivingData +
Encoding.Default.GetString(buffer).Substring(0, length);
}
else if (!string.IsNullOrEmpty(recivingData))
{
this.textBox1.Text = this.textBox1.Text +
Environment.NewLine + recivingData;
break;
}
}
}
}
}
}
■ 送信側
* 受信側とは別のプロジェクトで作成する
デザイン
* TextBox x 1
* Button x 1
サンプル
using System;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;
namespace TcpClientSample
{
public partial class Form1 : Form
{
private TcpClient tcpClient;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
using (this.tcpClient = new TcpClient("127.0.0.1", 4443))
{
NetworkStream stream = this.tcpClient.GetStream();
Byte[] buffer = Encoding.Default.GetBytes(this.textBox1.Text);
stream.Write(buffer, 0, buffer.Length);
}
}
}
}