客户端
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Net.Sockets ;
using System.Threading ;
namespace sock_user
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.RichTextBox richTextBox2;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private IPAddress myIP=IPAddress.Parse("127.0.0.1"); //把字符串转换为IPAddress格式;
private IPEndPoint MyServer;
private Socket connectsock;
private bool check=true;
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.listBox1 = new System.Windows.Forms.ListBox();
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.richTextBox2 = new System.Windows.Forms.RichTextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(2, 12);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(60, 16);
this.label1.TabIndex = 0;
this.label1.Text = "服务器IP:";
//
// label2
//
this.label2.Location = new System.Drawing.Point(2, 48);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(60, 16);
this.label2.TabIndex = 0;
this.label2.Text = "请求端口:";
//
// label3
//
this.label3.Location = new System.Drawing.Point(2, 86);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(60, 16);
this.label3.TabIndex = 0;
this.label3.Text = "接受信息:";
//
// label4
//
this.label4.Location = new System.Drawing.Point(2, 158);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(60, 16);
this.label4.TabIndex = 0;
this.label4.Text = "发送信息:";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(66, 8);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(94, 21);
this.textBox1.TabIndex = 1;
this.textBox1.Text = "";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(66, 44);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(94, 21);
this.textBox2.TabIndex = 1;
this.textBox2.Text = "";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.listBox1);
this.groupBox1.Location = new System.Drawing.Point(162, 2);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(332, 66);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "客户状态";
//
// listBox1
//
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(4, 12);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(322, 52);
this.listBox1.TabIndex = 0;
//
// richTextBox1
//
this.richTextBox1.Location = new System.Drawing.Point(66, 82);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(426, 64);
this.richTextBox1.TabIndex = 3;
this.richTextBox1.Text = "";
//
// richTextBox2
//
this.richTextBox2.Location = new System.Drawing.Point(66, 156);
this.richTextBox2.Name = "richTextBox2";
this.richTextBox2.Size = new System.Drawing.Size(426, 64);
this.richTextBox2.TabIndex = 3;
this.richTextBox2.Text = "";
//
// button1
//
this.button1.Location = new System.Drawing.Point(18, 240);
this.button1.Name = "button1";
this.button1.TabIndex = 4;
this.button1.Text = "连接";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(128, 240);
this.button2.Name = "button2";
this.button2.TabIndex = 4;
this.button2.Text = "发送信息";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button3
//
this.button3.Location = new System.Drawing.Point(240, 240);
this.button3.Name = "button3";
this.button3.TabIndex = 4;
this.button3.Text = "关闭连接";
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(530, 281);
this.Controls.Add(this.button1);
this.Controls.Add(this.richTextBox1);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label3);
this.Controls.Add(this.label4);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.richTextBox2);
this.Controls.Add(this.button2);
this.Controls.Add(this.button3);
this.Name = "Form1";
this.Text = "客户端";
this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
}
private void button1_Click(object sender, System.EventArgs e)
{
string IpStr="";
try
{
//把textBox1.Text输入的转换为IP地址
IPHostEntry IPHost=Dns.Resolve(this.textBox1.Text);
string teststr=IPHost.HostName;
IPAddress[] addr=IPHost.AddressList;
for(int i=0;i<addr.Length;i++)
{
IpStr+=addr[i];
}
}
catch(Exception er)
{
MessageBox.Show(er.Message);
}
//IP地址字符串转换为IPAddress格式;
myIP=IPAddress.Parse (IpStr);
try
{
MyServer=new IPEndPoint(myIP,Int32.Parse (textBox2.Text ));
connectsock=new Socket(AddressFamily.InterNetwork ,SocketType.Stream ,ProtocolType.Tcp );
connectsock.Connect (MyServer);
if(!connectsock.Connected)
{
MessageBox.Show("连接主机失败!");
}
else
{
listBox1.Items.Add ("与主机"+textBox1.Text +"端口"+textBox2.Text+"连接成功! ");
Thread thread=new Thread (new ThreadStart (receive));
thread.Start ();
}
}
catch(Exception ee)
{
MessageBox.Show (ee.Message );
}
}
private void button2_Click(object sender, System.EventArgs e)
{
try
{
Byte[] sendbyte=new Byte [64];
string send=richTextBox2.Text +" ";
//生成NetworkStream实例,用于发送基础数据流。
NetworkStream netstream=new NetworkStream (connectsock);
sendbyte=System.Text .Encoding .BigEndianUnicode .GetBytes (send.ToCharArray ());
netstream.Write (sendbyte,0,sendbyte.Length );//向socket服务器发送信息。
netstream.Flush ();
}
catch
{
MessageBox.Show ("连接没有建立!无法发送!");
}
}
private void button3_Click(object sender, System.EventArgs e)
{
try
{
connectsock.Close ();//断开连接。
listBox1.Items .Add ("与主机"+textBox1.Text +"端口"+textBox2.Text +"断开连接! ");
}
catch
{
MessageBox.Show ("连接没有建立!断开无效!");
}
}
private void receive()
{
while(true)
{
Byte[] Rec=new byte [64];
NetworkStream netstream=new NetworkStream (connectsock);
netstream.Read (Rec,0,Rec.Length );//读取客户发送来的信息。
string RecMessage=System.Text .Encoding .BigEndianUnicode .GetString (Rec);
richTextBox1.AppendText (RecMessage+" ");//写入到接收信息栏中。
}
}
}
}
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Net.Sockets ;
using System.Threading ;
namespace sock_user
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.RichTextBox richTextBox2;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private IPAddress myIP=IPAddress.Parse("127.0.0.1"); //把字符串转换为IPAddress格式;
private IPEndPoint MyServer;
private Socket connectsock;
private bool check=true;
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.listBox1 = new System.Windows.Forms.ListBox();
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.richTextBox2 = new System.Windows.Forms.RichTextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(2, 12);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(60, 16);
this.label1.TabIndex = 0;
this.label1.Text = "服务器IP:";
//
// label2
//
this.label2.Location = new System.Drawing.Point(2, 48);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(60, 16);
this.label2.TabIndex = 0;
this.label2.Text = "请求端口:";
//
// label3
//
this.label3.Location = new System.Drawing.Point(2, 86);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(60, 16);
this.label3.TabIndex = 0;
this.label3.Text = "接受信息:";
//
// label4
//
this.label4.Location = new System.Drawing.Point(2, 158);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(60, 16);
this.label4.TabIndex = 0;
this.label4.Text = "发送信息:";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(66, 8);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(94, 21);
this.textBox1.TabIndex = 1;
this.textBox1.Text = "";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(66, 44);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(94, 21);
this.textBox2.TabIndex = 1;
this.textBox2.Text = "";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.listBox1);
this.groupBox1.Location = new System.Drawing.Point(162, 2);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(332, 66);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "客户状态";
//
// listBox1
//
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(4, 12);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(322, 52);
this.listBox1.TabIndex = 0;
//
// richTextBox1
//
this.richTextBox1.Location = new System.Drawing.Point(66, 82);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(426, 64);
this.richTextBox1.TabIndex = 3;
this.richTextBox1.Text = "";
//
// richTextBox2
//
this.richTextBox2.Location = new System.Drawing.Point(66, 156);
this.richTextBox2.Name = "richTextBox2";
this.richTextBox2.Size = new System.Drawing.Size(426, 64);
this.richTextBox2.TabIndex = 3;
this.richTextBox2.Text = "";
//
// button1
//
this.button1.Location = new System.Drawing.Point(18, 240);
this.button1.Name = "button1";
this.button1.TabIndex = 4;
this.button1.Text = "连接";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(128, 240);
this.button2.Name = "button2";
this.button2.TabIndex = 4;
this.button2.Text = "发送信息";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button3
//
this.button3.Location = new System.Drawing.Point(240, 240);
this.button3.Name = "button3";
this.button3.TabIndex = 4;
this.button3.Text = "关闭连接";
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(530, 281);
this.Controls.Add(this.button1);
this.Controls.Add(this.richTextBox1);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label3);
this.Controls.Add(this.label4);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.richTextBox2);
this.Controls.Add(this.button2);
this.Controls.Add(this.button3);
this.Name = "Form1";
this.Text = "客户端";
this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
}
private void button1_Click(object sender, System.EventArgs e)
{
string IpStr="";
try
{
//把textBox1.Text输入的转换为IP地址
IPHostEntry IPHost=Dns.Resolve(this.textBox1.Text);
string teststr=IPHost.HostName;
IPAddress[] addr=IPHost.AddressList;
for(int i=0;i<addr.Length;i++)
{
IpStr+=addr[i];
}
}
catch(Exception er)
{
MessageBox.Show(er.Message);
}
//IP地址字符串转换为IPAddress格式;
myIP=IPAddress.Parse (IpStr);
try
{
MyServer=new IPEndPoint(myIP,Int32.Parse (textBox2.Text ));
connectsock=new Socket(AddressFamily.InterNetwork ,SocketType.Stream ,ProtocolType.Tcp );
connectsock.Connect (MyServer);
if(!connectsock.Connected)
{
MessageBox.Show("连接主机失败!");
}
else
{
listBox1.Items.Add ("与主机"+textBox1.Text +"端口"+textBox2.Text+"连接成功! ");
Thread thread=new Thread (new ThreadStart (receive));
thread.Start ();
}
}
catch(Exception ee)
{
MessageBox.Show (ee.Message );
}
}
private void button2_Click(object sender, System.EventArgs e)
{
try
{
Byte[] sendbyte=new Byte [64];
string send=richTextBox2.Text +" ";
//生成NetworkStream实例,用于发送基础数据流。
NetworkStream netstream=new NetworkStream (connectsock);
sendbyte=System.Text .Encoding .BigEndianUnicode .GetBytes (send.ToCharArray ());
netstream.Write (sendbyte,0,sendbyte.Length );//向socket服务器发送信息。
netstream.Flush ();
}
catch
{
MessageBox.Show ("连接没有建立!无法发送!");
}
}
private void button3_Click(object sender, System.EventArgs e)
{
try
{
connectsock.Close ();//断开连接。
listBox1.Items .Add ("与主机"+textBox1.Text +"端口"+textBox2.Text +"断开连接! ");
}
catch
{
MessageBox.Show ("连接没有建立!断开无效!");
}
}
private void receive()
{
while(true)
{
Byte[] Rec=new byte [64];
NetworkStream netstream=new NetworkStream (connectsock);
netstream.Read (Rec,0,Rec.Length );//读取客户发送来的信息。
string RecMessage=System.Text .Encoding .BigEndianUnicode .GetString (Rec);
richTextBox1.AppendText (RecMessage+" ");//写入到接收信息栏中。
}
}
}
}
服务端
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Net.Sockets ;
using System.Threading ;
namespace mySocket
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class StateObject : System.Windows.Forms.Form
{
#region
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.RichTextBox richTextBox2;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
#endregion
/// <summary>
/// 必需的设计器变量。
/// </summary>
private IPAddress myIP=IPAddress.Parse("127.0.0.1"); //把字符串转换为IPAddress格式;
private IPEndPoint MyServer;
private Socket sock;
private bool check=true;
private Socket accsock;
/// <summary>
///
/// </summary>
private System.ComponentModel.Container components = null;
public StateObject()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.listBox1 = new System.Windows.Forms.ListBox();
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.richTextBox2 = new System.Windows.Forms.RichTextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(2, 12);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(60, 16);
this.label1.TabIndex = 0;
this.label1.Text = "服务器IP:";
//
// label2
//
this.label2.Location = new System.Drawing.Point(184, 14);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(60, 16);
this.label2.TabIndex = 0;
this.label2.Text = "监听端口:";
//
// label3
//
this.label3.Location = new System.Drawing.Point(2, 60);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(60, 16);
this.label3.TabIndex = 0;
this.label3.Text = "接受信息:";
//
// label4
//
this.label4.Location = new System.Drawing.Point(2, 120);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(60, 16);
this.label4.TabIndex = 0;
this.label4.Text = "发送信息:";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(66, 8);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(94, 21);
this.textBox1.TabIndex = 1;
this.textBox1.Text = "";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(258, 12);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(66, 21);
this.textBox2.TabIndex = 1;
this.textBox2.Text = "";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.listBox1);
this.groupBox1.Location = new System.Drawing.Point(8, 198);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(330, 110);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "服务器状态";
//
// listBox1
//
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(4, 12);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(324, 88);
this.listBox1.TabIndex = 0;
//
// richTextBox1
//
this.richTextBox1.Location = new System.Drawing.Point(66, 40);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(276, 64);
this.richTextBox1.TabIndex = 3;
this.richTextBox1.Text = "";
//
// richTextBox2
//
this.richTextBox2.Location = new System.Drawing.Point(66, 110);
this.richTextBox2.Name = "richTextBox2";
this.richTextBox2.Size = new System.Drawing.Size(274, 64);
this.richTextBox2.TabIndex = 3;
this.richTextBox2.Text = "";
//
// button1
//
this.button1.Location = new System.Drawing.Point(18, 312);
this.button1.Name = "button1";
this.button1.TabIndex = 4;
this.button1.Text = "开始监听";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(128, 312);
this.button2.Name = "button2";
this.button2.TabIndex = 4;
this.button2.Text = "发送信息";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button3
//
this.button3.Location = new System.Drawing.Point(240, 312);
this.button3.Name = "button3";
this.button3.TabIndex = 4;
this.button3.Text = "停止监听";
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// StateObject
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(372, 340);
this.Controls.Add(this.button1);
this.Controls.Add(this.richTextBox1);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label3);
this.Controls.Add(this.label4);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.richTextBox2);
this.Controls.Add(this.button2);
this.Controls.Add(this.button3);
this.Name = "StateObject";
this.Text = "服务器";
this.Load += new System.EventHandler(this.StateObject_Load);
this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new StateObject());
}
private void StateObject_Load(object sender, System.EventArgs e)
{
}
private void button1_Click(object sender, System.EventArgs e)
{
string IpStr="";
try
{
//把textBox1.Text输入的转换为IP地址
IPHostEntry IPHost=Dns.Resolve(this.textBox1.Text);
string teststr=IPHost.HostName;
IPAddress[] addr=IPHost.AddressList;
for(int i=0;i<addr.Length;i++)
{
IpStr+=addr[i];
}
}
catch(Exception er)
{
MessageBox.Show(er.Message);
}
//IP地址字符串转换为IPAddress格式;
myIP=IPAddress.Parse (IpStr);
try
{
Thread thread=new Thread (new ThreadStart (accp)); //生成监听线程;
thread.Start ();
}
catch(Exception ee)
{
listBox1.Items.Add (ee.Message) ;
}
}
private void accp()
{
MyServer=new IPEndPoint (myIP,Int32.Parse (textBox2.Text));//组合将访问主机的IP地址和端口号。
sock=new Socket (AddressFamily.InterNetwork ,SocketType.Stream ,ProtocolType.Tcp );//实例化Socket对象。
sock.Bind(MyServer);//绑定将访问的主机。
sock.Listen (50);//开始监听,最大包长50。
listBox1.Items.Add ("主机"+textBox1.Text +"端口"+textBox2.Text +"开始监听...... ");
while(true)
{
accsock=sock.Accept ();//接收客户端的服务请求。
if(accsock.Connected)
{
listBox1.Items.Add ("与客户建立连接。");
Thread thread=new Thread (new ThreadStart (round));//如果有客户请求,生成与客户通信的线程。
thread.Start ();
}
}
}
private void round()
{
while(true)
{
Byte[] Rec=new byte [64];
NetworkStream netstream=new NetworkStream (accsock);
netstream.Read (Rec,0,Rec.Length );//读取客户发送来的信息。
string RecMessage=System.Text .Encoding .BigEndianUnicode .GetString (Rec);
richTextBox1.AppendText (RecMessage+" ");//写入到接收信息栏中。
}
}
private void button2_Click(object sender, System.EventArgs e)
{
try
{
Byte[] sendbyte=new Byte [64];
string send=richTextBox2.Text +" ";
NetworkStream netstream=new NetworkStream (accsock);//生成NetworkStream实例,用于发送基础数据流。
sendbyte=System.Text .Encoding .BigEndianUnicode .GetBytes (send.ToCharArray ());
netstream.Write (sendbyte,0,sendbyte.Length );//向客户发送信息。
}
catch
{
MessageBox.Show ("连接没有建立!无法发送!");
}
}
private void button3_Click(object sender, System.EventArgs e)
{
try
{
sock.Close ();//停止监听服务。
listBox1.Items .Add ("主机"+textBox1.Text +"端口"+textBox2.Text +"停止监听。 ");
}
catch
{
MessageBox.Show ("监听没有建立!关闭无效!");
}
}
}
}
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Net.Sockets ;
using System.Threading ;
namespace mySocket
{
/// <summary>
/// Form1 的摘要说明。
/// </summary>
public class StateObject : System.Windows.Forms.Form
{
#region
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.RichTextBox richTextBox1;
private System.Windows.Forms.RichTextBox richTextBox2;
private System.Windows.Forms.ListBox listBox1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
#endregion
/// <summary>
/// 必需的设计器变量。
/// </summary>
private IPAddress myIP=IPAddress.Parse("127.0.0.1"); //把字符串转换为IPAddress格式;
private IPEndPoint MyServer;
private Socket sock;
private bool check=true;
private Socket accsock;
/// <summary>
///
/// </summary>
private System.ComponentModel.Container components = null;
public StateObject()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.listBox1 = new System.Windows.Forms.ListBox();
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
this.richTextBox2 = new System.Windows.Forms.RichTextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.Location = new System.Drawing.Point(2, 12);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(60, 16);
this.label1.TabIndex = 0;
this.label1.Text = "服务器IP:";
//
// label2
//
this.label2.Location = new System.Drawing.Point(184, 14);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(60, 16);
this.label2.TabIndex = 0;
this.label2.Text = "监听端口:";
//
// label3
//
this.label3.Location = new System.Drawing.Point(2, 60);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(60, 16);
this.label3.TabIndex = 0;
this.label3.Text = "接受信息:";
//
// label4
//
this.label4.Location = new System.Drawing.Point(2, 120);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(60, 16);
this.label4.TabIndex = 0;
this.label4.Text = "发送信息:";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(66, 8);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(94, 21);
this.textBox1.TabIndex = 1;
this.textBox1.Text = "";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(258, 12);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(66, 21);
this.textBox2.TabIndex = 1;
this.textBox2.Text = "";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.listBox1);
this.groupBox1.Location = new System.Drawing.Point(8, 198);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(330, 110);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "服务器状态";
//
// listBox1
//
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(4, 12);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(324, 88);
this.listBox1.TabIndex = 0;
//
// richTextBox1
//
this.richTextBox1.Location = new System.Drawing.Point(66, 40);
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(276, 64);
this.richTextBox1.TabIndex = 3;
this.richTextBox1.Text = "";
//
// richTextBox2
//
this.richTextBox2.Location = new System.Drawing.Point(66, 110);
this.richTextBox2.Name = "richTextBox2";
this.richTextBox2.Size = new System.Drawing.Size(274, 64);
this.richTextBox2.TabIndex = 3;
this.richTextBox2.Text = "";
//
// button1
//
this.button1.Location = new System.Drawing.Point(18, 312);
this.button1.Name = "button1";
this.button1.TabIndex = 4;
this.button1.Text = "开始监听";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(128, 312);
this.button2.Name = "button2";
this.button2.TabIndex = 4;
this.button2.Text = "发送信息";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button3
//
this.button3.Location = new System.Drawing.Point(240, 312);
this.button3.Name = "button3";
this.button3.TabIndex = 4;
this.button3.Text = "停止监听";
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// StateObject
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(372, 340);
this.Controls.Add(this.button1);
this.Controls.Add(this.richTextBox1);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label3);
this.Controls.Add(this.label4);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.richTextBox2);
this.Controls.Add(this.button2);
this.Controls.Add(this.button3);
this.Name = "StateObject";
this.Text = "服务器";
this.Load += new System.EventHandler(this.StateObject_Load);
this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new StateObject());
}
private void StateObject_Load(object sender, System.EventArgs e)
{
}
private void button1_Click(object sender, System.EventArgs e)
{
string IpStr="";
try
{
//把textBox1.Text输入的转换为IP地址
IPHostEntry IPHost=Dns.Resolve(this.textBox1.Text);
string teststr=IPHost.HostName;
IPAddress[] addr=IPHost.AddressList;
for(int i=0;i<addr.Length;i++)
{
IpStr+=addr[i];
}
}
catch(Exception er)
{
MessageBox.Show(er.Message);
}
//IP地址字符串转换为IPAddress格式;
myIP=IPAddress.Parse (IpStr);
try
{
Thread thread=new Thread (new ThreadStart (accp)); //生成监听线程;
thread.Start ();
}
catch(Exception ee)
{
listBox1.Items.Add (ee.Message) ;
}
}
private void accp()
{
MyServer=new IPEndPoint (myIP,Int32.Parse (textBox2.Text));//组合将访问主机的IP地址和端口号。
sock=new Socket (AddressFamily.InterNetwork ,SocketType.Stream ,ProtocolType.Tcp );//实例化Socket对象。
sock.Bind(MyServer);//绑定将访问的主机。
sock.Listen (50);//开始监听,最大包长50。
listBox1.Items.Add ("主机"+textBox1.Text +"端口"+textBox2.Text +"开始监听...... ");
while(true)
{
accsock=sock.Accept ();//接收客户端的服务请求。
if(accsock.Connected)
{
listBox1.Items.Add ("与客户建立连接。");
Thread thread=new Thread (new ThreadStart (round));//如果有客户请求,生成与客户通信的线程。
thread.Start ();
}
}
}
private void round()
{
while(true)
{
Byte[] Rec=new byte [64];
NetworkStream netstream=new NetworkStream (accsock);
netstream.Read (Rec,0,Rec.Length );//读取客户发送来的信息。
string RecMessage=System.Text .Encoding .BigEndianUnicode .GetString (Rec);
richTextBox1.AppendText (RecMessage+" ");//写入到接收信息栏中。
}
}
private void button2_Click(object sender, System.EventArgs e)
{
try
{
Byte[] sendbyte=new Byte [64];
string send=richTextBox2.Text +" ";
NetworkStream netstream=new NetworkStream (accsock);//生成NetworkStream实例,用于发送基础数据流。
sendbyte=System.Text .Encoding .BigEndianUnicode .GetBytes (send.ToCharArray ());
netstream.Write (sendbyte,0,sendbyte.Length );//向客户发送信息。
}
catch
{
MessageBox.Show ("连接没有建立!无法发送!");
}
}
private void button3_Click(object sender, System.EventArgs e)
{
try
{
sock.Close ();//停止监听服务。
listBox1.Items .Add ("主机"+textBox1.Text +"端口"+textBox2.Text +"停止监听。 ");
}
catch
{
MessageBox.Show ("监听没有建立!关闭无效!");
}
}
}
}