socket客户端的问题。
我想写一个socket的客户端。
连接已经写好,可是不知道怎么收、发数据。
代码如下,请哪位高手指点一下。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace testclient
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Socket client;
Thread th1;
private void Form1_Load(object sender, EventArgs e)
{
string pcname = Dns.GetHostName();
IPAddress[] ip = Dns.GetHostAddresses(pcname);
textBox5.Text = Convert.ToString(ip[0]);
textBox1.Text = "192.168.0.99";
textBox2.Text = "81";
button2.Enabled = false;
}
private void button1_Click(object sender, EventArgs e)
{
client = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
th1 = new Thread(new ThreadStart(start));
th1.IsBackground = true;
th1.Start();
button1.Enabled = false;
button2.Enabled = true;
}
private void start()
{
try
{
IPAddress ip = IPAddress.Parse(this.textBox1.Text);
int port = Convert.ToInt32(this.textBox2.Text);
IPEndPoint IEp = new IPEndPoint(ip, port);
try
{
client.Connect(IEp);
}
catch
{
MessageBox.Show("服务器端未开启连接,请联系系统管理员");
}
}
catch
{
MessageBox.Show("您输入的IP无效请重新输入");
}
if (client.Connected)
{
MessageBox.Show("连接成功可以开始通讯!");
}
}
private void button2_Click(object sender, EventArgs e)
{
try
{
string str = textBox3.Text;
ASCIIEncoding ascii = new ASCIIEncoding();
byte[] msg = ascii.GetBytes(str);
client.Send(msg);
}
catch
{
MessageBox.Show("没有连接或命令输入错误!");
}
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
th1.Abort();
}
}
}