csharp tcp/ip连接发送消息
2012-02-17 08:32
302 查看
public Form6()
{
client = new TcpClient();
InitializeComponent();
}
const int BufferSize = 8192;//缓存大小
Regex r = new Regex(@"(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])");
public TcpClient client;
public NetworkStream stream;
// public Thread thread;
public Thread thread1;
IPEndPoint iep;
private void button1_Click(object sender, EventArgs e)
{
if (this.button1.Text != "取消")
{
if (!r.IsMatch(this.textBox1.Text))
{
MessageBox.Show("你输入的IP地址有错,请检查后重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.textBox1.Focus();
}
else
{
this.button1.Text = "取消";
this.label1.Text = "正向服务器发送连接请求中..........";
string ip = this.textBox1.Text;
int port = Convert.ToInt32(this.textBox2.Text);
iep = new IPEndPoint(IPAddress.Parse(ip), port);
try
{
client.Connect(iep);
stream = client.GetStream();
thread1 = new Thread(new ThreadStart(connect));
thread1.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
else
{
this.button1.Text = "连接到服务器";
}
}
public void connect()
{
Control.CheckForIllegalCrossThreadCalls
= false;
while( true )
{
// NetworkStream MyStream = client.GetStream();
byte [] bytes = new byte[2048];
stream.Read(bytes,0,bytes.Length);
string message = System.Text.Encoding.Default.GetString(bytes);
//Message += message + "\n";
richTextBoxReceive.Text += message + "\n";
}
}
public void send(string msg)
{
try
{
// NetworkStream sendStream = client.GetStream();
Byte[] sendBytes = Encoding.Default.GetBytes(msg);
stream.Write(sendBytes, 0, sendBytes.Length);
}
catch (System.Exception e)
{
richTextBox1.Text = e.ToString(); ;
}
}
private void button3_Click_1(object sender, EventArgs e)
{
send(richTextBox1.Text);
}
private void Form6_FormClosed(object sender, FormClosedEventArgs e)
{
if (client.Connected)
{
client.Close();
thread1.Abort();
stream.Close();
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs
e)
{
if(e.RowIndex>=0)
{
textBox1.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
textBox2.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
}
}
private void button7_Click(object sender, EventArgs e)
{
string name = DateTime.Today.ToString("yyyyMMddhhmmss");
string geshi=".txt";
string path = @"..\..\文件";
path += name;
path += geshi;
FileStream fs;
StreamWriter sw;
fs = new FileStream(path, FileMode.Create);
sw = new StreamWriter(fs, Encoding.Default);
sw.Write(richTextBoxReceive.Text);
sw.Close();
fs.Close();
}
}
{
client = new TcpClient();
InitializeComponent();
}
const int BufferSize = 8192;//缓存大小
Regex r = new Regex(@"(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])");
public TcpClient client;
public NetworkStream stream;
// public Thread thread;
public Thread thread1;
IPEndPoint iep;
private void button1_Click(object sender, EventArgs e)
{
if (this.button1.Text != "取消")
{
if (!r.IsMatch(this.textBox1.Text))
{
MessageBox.Show("你输入的IP地址有错,请检查后重新输入", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.textBox1.Focus();
}
else
{
this.button1.Text = "取消";
this.label1.Text = "正向服务器发送连接请求中..........";
string ip = this.textBox1.Text;
int port = Convert.ToInt32(this.textBox2.Text);
iep = new IPEndPoint(IPAddress.Parse(ip), port);
try
{
client.Connect(iep);
stream = client.GetStream();
thread1 = new Thread(new ThreadStart(connect));
thread1.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
else
{
this.button1.Text = "连接到服务器";
}
}
public void connect()
{
Control.CheckForIllegalCrossThreadCalls
= false;
while( true )
{
// NetworkStream MyStream = client.GetStream();
byte [] bytes = new byte[2048];
stream.Read(bytes,0,bytes.Length);
string message = System.Text.Encoding.Default.GetString(bytes);
//Message += message + "\n";
richTextBoxReceive.Text += message + "\n";
}
}
public void send(string msg)
{
try
{
// NetworkStream sendStream = client.GetStream();
Byte[] sendBytes = Encoding.Default.GetBytes(msg);
stream.Write(sendBytes, 0, sendBytes.Length);
}
catch (System.Exception e)
{
richTextBox1.Text = e.ToString(); ;
}
}
private void button3_Click_1(object sender, EventArgs e)
{
send(richTextBox1.Text);
}
private void Form6_FormClosed(object sender, FormClosedEventArgs e)
{
if (client.Connected)
{
client.Close();
thread1.Abort();
stream.Close();
}
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs
e)
{
if(e.RowIndex>=0)
{
textBox1.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
textBox2.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
}
}
private void button7_Click(object sender, EventArgs e)
{
string name = DateTime.Today.ToString("yyyyMMddhhmmss");
string geshi=".txt";
string path = @"..\..\文件";
path += name;
path += geshi;
FileStream fs;
StreamWriter sw;
fs = new FileStream(path, FileMode.Create);
sw = new StreamWriter(fs, Encoding.Default);
sw.Write(richTextBoxReceive.Text);
sw.Close();
fs.Close();
}
}
相关文章推荐
- Java-TCP/IP 编程-01 主线程:从控制台录入消息,发送到服务器 子线程:接收服务器转发来的消息
- 手机连接设备的蓝牙向其发送子服务器局域网IP信息,从而esp8266与该服务器建立tcp连接
- 建立tcp/ip连接,vc6实现客户端(发送数据)
- 在 TCP 网络上检测出有重复名称,发送消息的计算机的 IP 地址在数据中
- Socket编程(连接、发送消息)(Tcp、Udp)
- Socket编程 (连接,发送消息) (Tcp、Udp) ,这个是同步,跟上一篇差不多
- LWIP 修改ip TCP发送 连接状态
- TCP/IP (二) TCP消息的发送
- 尝试通过使用 TCP/IP 套接字连接到群集中的 SQL Server 命名实例时收到“SQL Server does not exist or access denied”(SQL Server 不存在,或者访问被拒绝)错误消息
- Socket编程 (连接,发送消息) (Tcp、Udp) - Part1
- Socket编程 (连接,发送消息) (Tcp、Udp) - Part1
- NTCPMSG 开源高性能TCP消息发送组件
- 转一个文章:一直在使用的协议但是有些糊涂的(TCP/IP,http,socket,长连接,短连接)
- sqlserver 2005没有1433端口|无法启动当使用tcp/ip连接时
- 设置WINDOWS XP支持大量TCP/IP连接
- TCP/IP源码学习(53)——TCP的连接过程的实现(2)
- 高性能网络编程2----TCP消息的发送
- SQLServerException: 到主机的TCP/IP 连接失败解决办法
- 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口
- linux 查看TCP连接IP统计小程序