黑马程序员技术交流社区
标题:
黑马程序员-服务端向客户端发送请求
[打印本页]
作者:
安玉波
时间:
2013-3-8 00:45
标题:
黑马程序员-服务端向客户端发送请求
一、服务端向客户端发送请求
代码如下:
public Form1()
{
InitializeComponent();
TextBox.CheckForIllegalCrossThreadCalls = false;//关闭跨线程修改控件检查
}
Socket sokWatch = null;//负责监听 客户端 连接请求的 套接字
Thread threadWatch = null;//负责调用套接字,执行 监听请求的线程
//开始监听按钮
private void button1_Click(object sender, EventArgs e)
{
//实例化 套接字 (ip4寻址协议,流式传输,TCP协议)
sokWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//创建IP对象
IPAddress address = IPAddress.Parse(txtIp.Text.Trim());
//创建网络节点对象 包含 ip和port
IPEndPoint endPoint = new IPEndPoint(address, int.Parse(txtPort.Text.ToString().Trim()));
//将 监听套接字 绑定到 对应的IP和端口
try
{
sokWatch.Bind(endPoint);
}
catch (Exception ex)
{
txtShow.AppendText("异常:"+ex);
return;
}
//设置 监听队列 长度为10(同时能处理10个连接请求)
sokWatch.Listen(10);
threadWatch = new Thread(StartWatch);
threadWatch.IsBackground = true;
threadWatch.Start();
txtShow.AppendText("启动服务成功!\r\n");
}
Socket sokMsg = null;//负责与该客户端套接字通信的套接字
bool isWatch = true;
void StartWatch()
{
while (isWatch)
{
//监听 客户端 连接请求 ,但是,它会阻断当前线程
sokMsg = sokWatch.Accept();//监听到请求,立即创建负责与该客户端套接字通信的套接字
txtShow.AppendText("接受连接成功!\r\n");
}
}
//发送信息 到指定的客户端
private void btnSendNews_Click(object sender, EventArgs e)
{
byte[] arrMsg = System.Text.Encoding.UTF8.GetBytes(txtInput.Text.Trim());//把字符串 转换成 字节
sokMsg.Send(arrMsg);//发送信息
txtShow.AppendText("我说:" + txtInput.Text.Trim()+"\r\n");
}
复制代码
作者:
张卫刚
时间:
2013-3-8 00:57
学习学习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2