




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/Socket基本编程/服务端:using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;Thread mythread ;Socket socket;/ 清理所有正在使用的资源。PRotected override void Dispose( bool disposing )try socket.Close();/释放资源 mythread.Abort ( ) ;/中止线程 catch if( disposing )if (components != null)components.Dispose();base.Dispose( disposing );public staticipAddress GetServerIP()IPHostEntry ieh=Dns.GetHostByName(Dns.GetHostName();return ieh.AddressList0;private void BeginListen()IPAddress ServerIp=GetServerIP();IPEndPoint iep=new IPEndPoint(ServerIp,8000);socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);byte byteMessage=new byte100;this.label1.Text=iep.ToString();socket.Bind(iep);/ dowhile(true)trysocket.Listen(5);Socket newSocket=socket.Accept();newSocket.Receive(byteMessage);string sTime = DateTime.Now.ToShortTimeString ( ) ;string msg=sTime+:+Message from:;msg+=newSocket.RemoteEndPoint.ToString()+Encoding.Default.GetString(byteMessage);this.listBox1.Items.Add(msg);catch(SocketException ex)this.label1.Text+=ex.ToString();/ while(byteMessage!=null);/开始监听private void button1_Click(object sender, System.EventArgs e)trymythread = new Thread(new ThreadStart(BeginListen);mythread.Start();catch(System.Exception er)MessageBox.Show(er.Message,完成,MessageBoxButtons.OK,MessageBoxIcon.Stop);/客户端:using System.Net;using System.Net.Sockets;using System.Text;private void button1_Click(object sender, System.EventArgs e)BeginSend();private void BeginSend()string ip=this.txtip.Text;string port=this.txtport.Text;IPAddress serverIp=IPAddress.Parse(ip);int serverPort=Convert.ToInt32(port);IPEndPoint iep=new IPEndPoint(serverIp,serverPort);byte byteMessage;/ do/ Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);socket.Connect(iep);byteMessage=Encoding.ASCII.GetBytes(textBox1.Text);socket.Send(byteMessage);socket.Shutdown(SocketShutdown.Both);socket.Close();/ / while(byteMessage!=null);基于TCP协议的发送和接收端TCP协议的接收端using System.Net.Sockets ; /使用到TcpListen类using System.Threading ; /使用到线程using System.IO ; /使用到StreamReader类int port = 8000; /定义侦听端口号private Thread thThreadRead; /创建线程,用以侦听端口号,接收信息private TcpListener tlTcpListen; /侦听端口号private bool blistener = true; /设定标示位,判断侦听状态private NetworkStream nsStream; /创建接收的基本数据流private StreamReader srRead;private System.Windows.Forms.StatusBar statusBar1;private System.Windows.Forms.Button button1;private System.Windows.Forms.ListBox listBox1; /从网络基础数据流中读取数据private TcpClient tcClient ;private void Listen ( )trytlTcpListen = new TcpListener ( port ) ; /以8000端口号来初始化TcpListener实例tlTcpListen.Start ( ) ; /开始监听statusBar1.Text = 正在监听 ;tcClient = tlTcpListen.AcceptTcpClient ( ) ; /通过TCP连接请求nsStream = tcClient.GetStream ( ) ; /获取用以发送、接收数据的网络基础数据流srRead=new StreamReader(nsStream);/以得到的网络基础数据流来初始化StreamReader实例statusBar1.Text = 已经连接!;while( blistener ) /循环侦听string sMessage = srRead.ReadLine();/从网络基础数据流中读取一行数据if ( sMessage = STOP ) /判断是否为断开TCP连接控制码tlTcpListen.Stop(); /关闭侦听nsStream.Close(); /释放资源srRead.Close();statusBar1.Text = 连接已经关闭! ;thThreadRead.Abort(); /中止线程return;string sTime = DateTime.Now.ToShortTimeString ( ) ; /获取接收数据时的时间listBox1.Items.Add ( sTime + + sMessage ) ;catch ( System.Security.SecurityException )MessageBox.Show ( 侦听失败! , 错误 ) ;/开始监听private void button1_Click(object sender, System.EventArgs e)thThreadRead = new Thread ( new ThreadStart ( Listen ) );thThreadRead.Start();/启动线程button1.Enabled=false;/ 清理所有正在使用的资源。protected override void Dispose( bool disposing )trytlTcpListen.Stop(); /关闭侦听nsStream.Close();srRead.Close();/释放资源thThreadRead.Abort();/中止线程catchif( disposing )if (components != null)components.Dispose();base.Dispose( disposing );TCP协议的发送端using System.Net.Sockets; /使用到TcpListen类using System.Threading; /使用到线程using System.IO; /使用到StreamWriter类using System.Net; /使用IPAddress类、IPHostEntry类等private StreamWriter swWriter; /用以向网络基础数据流传送数据private NetworkStream nsStream; /创建发送数据的网络基础数据流private TcpClient tcpClient;private System.Windows.Forms.Button button1;private System.Windows.Forms.TextBox textBox1;private System.Windows.Forms.Button button2;private System.Windows.Forms.TextBox textBox2;private System.Windows.Forms.StatusBar statusBar1;private System.Windows.Forms.Label label1;private System.Windows.Forms.Label label2; /通过它实现向远程主机提出TCP连接申请private bool tcpConnect = false; /定义标识符,用以表示TCP连接是否建立/连接private void button1_Click(object sender, System.EventArgs e)IPAddress ipRemote ;tryipRemote = IPAddress.Parse ( textBox1.Text ) ;catch /判断给定的IP地址的合法性MessageBox.Show ( 输入的IP地址不合法! , 错误提示! ) ;return ;IPHostEntry ipHost ;tryipHost = Dns.Resolve ( textBox1.Text ) ;catch /判断IP地址对应主机是否在线MessageBox.Show (远程主机不在线! , 错误提示! ) ;return ;string sHostName = ipHost.HostName ;tryTcpClient tcpClient = new TcpClient(sHostName,8000);/对远程主机的8000端口提出TCP连接申请nsStream = tcpClient.GetStream();/通过申请,并获取传送数据的网络基础数据流swWriter = new StreamWriter(nsStream);/使用获取的网络基础数据流来初始化StreamWriter实例button1.Enabled = false ;button2.Enabled = true ;tcpConnect = true ;statusBar1.Text = 已经连接! ;catchMessageBox.Show ( 无法和远程主机8000端口建立连接! , 错误提示! ) ;return ;/发送private void button2_Click(object sender, System.EventArgs e)if (textBox2.Text !=)swWriter.WriteLine(textBox2.Text);/刷新当前数据流中的数据swWriter.Flush();elseMessageBox.Show(发送信息不能为空!,错误提示!
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年 广西医科大学第二附属医院招聘笔试试题附答案
- 2023-2029年中国特种水产行业市场深度研究及投资战略咨询报告
- 2025年 北海市城市开发投资集团有限公司招聘考试笔试试题附答案
- 清洁生产管理清洁生产审核报告染料厂
- 2025年中国家居门帘行业市场发展前景及发展趋势与投资战略研究报告
- 2025年水飞蓟素项目节能评估报告(节能专)
- 中国云服务行业市场发展现状及前景趋势与投资分析研究报告(2024-2030)
- 2025年中国布边纱夹压脚行业市场发展前景及发展趋势与投资战略研究报告
- 2020-2025年中国果蔬消毒机行业市场调查研究及投资前景预测报告
- 2025医疗商业计划书
- 四年级语文下册阅读专项归类复习(有答案)
- 颈椎肿瘤的护理
- 2025至2030中国不锈钢精密带材行业前景预测及发展趋势预判报告
- 无人机驾驶员雇佣合同协议
- 湖南省长沙市华益中学2023-2024学年八年级下学期期末考试英语试卷(含答案)
- 海南省琼海市2023-2024学年七年级下学期期末考试历史试卷(含答案)
- 电动船舶生产线项目可行性研究报告(范文参考)
- 浙江宁波历年中考作文题与审题指导(2007-2021)
- 儿童乐园用工合同范本
- 小儿烫伤个案护理
- 小孩办身份证的委托书范本
评论
0/150
提交评论