Socket通信基础
2006-08-21 16:44
211 查看
Socket通信传递数据
服务端:
[align=left]using System.Net;[/align]
[align=left]using System.Net.Sockets;[/align]
[align=left]using System.Text;[/align]
using System.Threading;
[align=left] [/align]
[align=left] Thread mythread ;[/align]
[align=left] Socket socket;[/align]
[align=left]// 清理所有正在使用的资源。[/align]
[align=left] protected override void Dispose( bool disposing )[/align]
[align=left] {[/align]
[align=left] try [/align]
[align=left] { [/align]
[align=left] socket.Close();//释放资源 [/align]
[align=left] mythread.Abort ( ) ;//中止线程 [/align]
[align=left] } [/align]
[align=left] catch{ } [/align]
[align=left] [/align]
[align=left] if( disposing )[/align]
[align=left] {[/align]
[align=left] if (components != null) [/align]
[align=left] {[/align]
[align=left] components.Dispose();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] base.Dispose( disposing );[/align]
}
[align=left] public static IPAddress GetServerIP()[/align]
[align=left] {[/align]
[align=left] IPHostEntry ieh=Dns.GetHostByName(Dns.GetHostName());[/align]
[align=left] return ieh.AddressList[0];[/align]
[align=left] }[/align]
[align=left] private void BeginListen()[/align]
[align=left] {[/align]
[align=left] IPAddress ServerIp=GetServerIP();[/align]
[align=left] IPEndPoint iep=new IPEndPoint(ServerIp,8000);[/align]
[align=left] socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);[/align]
[align=left] [/align]
[align=left] byte[] byteMessage=new byte[100]; [/align]
[align=left] this.label1.Text=iep.ToString();[/align]
[align=left] socket.Bind(iep); [/align]
[align=left]// do[/align]
[align=left] while(true)[/align]
[align=left] {[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] socket.Listen(5);[/align]
[align=left] Socket newSocket=socket.Accept();[/align]
[align=left] newSocket.Receive(byteMessage);[/align]
[align=left] [/align]
[align=left] string sTime = DateTime.Now.ToShortTimeString ( ) ;[/align]
[align=left] string msg=sTime+":"+"Message from:";[/align]
[align=left] msg+=newSocket.RemoteEndPoint.ToString()+Encoding.Default.GetString(byteMessage);[/align]
[align=left] this.listBox1.Items.Add(msg);[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] catch(SocketException ex)[/align]
[align=left] {[/align]
[align=left] this.label1.Text+=ex.ToString();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]// while(byteMessage!=null);[/align]
[align=left] }[/align]
[align=left] //开始监听[/align]
[align=left] private void button1_Click(object sender, System.EventArgs e)[/align]
[align=left] {[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] mythread = new Thread(new ThreadStart(BeginListen));[/align]
[align=left] mythread.Start();[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] catch(System.Exception er)[/align]
[align=left] {[/align]
[align=left] MessageBox.Show(er.Message,"完成",MessageBoxButtons.OK,MessageBoxIcon.Stop);[/align]
[align=left] } [/align]
}
客户端:
[align=left]using System.Net;[/align]
[align=left]using System.Net.Sockets;[/align]
using System.Text;
[align=left] private void button1_Click(object sender, System.EventArgs e)[/align]
[align=left] {[/align]
[align=left] BeginSend(); [/align]
[align=left] }[/align]
[align=left] private void BeginSend()[/align]
[align=left] { [/align]
[align=left] string ip=this.txtip.Text;[/align]
[align=left] string port=this.txtport.Text;[/align]
[align=left] [/align]
[align=left] IPAddress serverIp=IPAddress.Parse(ip); [/align]
[align=left] int serverPort=Convert.ToInt32(port);[/align]
[align=left] IPEndPoint iep=new IPEndPoint(serverIp,serverPort); [/align]
[align=left] byte[] byteMessage; [/align]
[align=left]// do[/align]
[align=left]// {[/align]
[align=left] Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);[/align]
[align=left] socket.Connect(iep);[/align]
[align=left] [/align]
[align=left] byteMessage=Encoding.ASCII.GetBytes(textBox1.Text);[/align]
[align=left] socket.Send(byteMessage);[/align]
[align=left] socket.Shutdown(SocketShutdown.Both);[/align]
[align=left] socket.Close();[/align]
[align=left]// }[/align]
[align=left]// while(byteMessage!=null);[/align]
}
服务端:
[align=left]using System.Net;[/align]
[align=left]using System.Net.Sockets;[/align]
[align=left]using System.Text;[/align]
using System.Threading;
[align=left] [/align]
[align=left] Thread mythread ;[/align]
[align=left] Socket socket;[/align]
[align=left]// 清理所有正在使用的资源。[/align]
[align=left] protected override void Dispose( bool disposing )[/align]
[align=left] {[/align]
[align=left] try [/align]
[align=left] { [/align]
[align=left] socket.Close();//释放资源 [/align]
[align=left] mythread.Abort ( ) ;//中止线程 [/align]
[align=left] } [/align]
[align=left] catch{ } [/align]
[align=left] [/align]
[align=left] if( disposing )[/align]
[align=left] {[/align]
[align=left] if (components != null) [/align]
[align=left] {[/align]
[align=left] components.Dispose();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] base.Dispose( disposing );[/align]
}
[align=left] public static IPAddress GetServerIP()[/align]
[align=left] {[/align]
[align=left] IPHostEntry ieh=Dns.GetHostByName(Dns.GetHostName());[/align]
[align=left] return ieh.AddressList[0];[/align]
[align=left] }[/align]
[align=left] private void BeginListen()[/align]
[align=left] {[/align]
[align=left] IPAddress ServerIp=GetServerIP();[/align]
[align=left] IPEndPoint iep=new IPEndPoint(ServerIp,8000);[/align]
[align=left] socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);[/align]
[align=left] [/align]
[align=left] byte[] byteMessage=new byte[100]; [/align]
[align=left] this.label1.Text=iep.ToString();[/align]
[align=left] socket.Bind(iep); [/align]
[align=left]// do[/align]
[align=left] while(true)[/align]
[align=left] {[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] socket.Listen(5);[/align]
[align=left] Socket newSocket=socket.Accept();[/align]
[align=left] newSocket.Receive(byteMessage);[/align]
[align=left] [/align]
[align=left] string sTime = DateTime.Now.ToShortTimeString ( ) ;[/align]
[align=left] string msg=sTime+":"+"Message from:";[/align]
[align=left] msg+=newSocket.RemoteEndPoint.ToString()+Encoding.Default.GetString(byteMessage);[/align]
[align=left] this.listBox1.Items.Add(msg);[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] catch(SocketException ex)[/align]
[align=left] {[/align]
[align=left] this.label1.Text+=ex.ToString();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]// while(byteMessage!=null);[/align]
[align=left] }[/align]
[align=left] //开始监听[/align]
[align=left] private void button1_Click(object sender, System.EventArgs e)[/align]
[align=left] {[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] mythread = new Thread(new ThreadStart(BeginListen));[/align]
[align=left] mythread.Start();[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] catch(System.Exception er)[/align]
[align=left] {[/align]
[align=left] MessageBox.Show(er.Message,"完成",MessageBoxButtons.OK,MessageBoxIcon.Stop);[/align]
[align=left] } [/align]
}
客户端:
[align=left]using System.Net;[/align]
[align=left]using System.Net.Sockets;[/align]
using System.Text;
[align=left] private void button1_Click(object sender, System.EventArgs e)[/align]
[align=left] {[/align]
[align=left] BeginSend(); [/align]
[align=left] }[/align]
[align=left] private void BeginSend()[/align]
[align=left] { [/align]
[align=left] string ip=this.txtip.Text;[/align]
[align=left] string port=this.txtport.Text;[/align]
[align=left] [/align]
[align=left] IPAddress serverIp=IPAddress.Parse(ip); [/align]
[align=left] int serverPort=Convert.ToInt32(port);[/align]
[align=left] IPEndPoint iep=new IPEndPoint(serverIp,serverPort); [/align]
[align=left] byte[] byteMessage; [/align]
[align=left]// do[/align]
[align=left]// {[/align]
[align=left] Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);[/align]
[align=left] socket.Connect(iep);[/align]
[align=left] [/align]
[align=left] byteMessage=Encoding.ASCII.GetBytes(textBox1.Text);[/align]
[align=left] socket.Send(byteMessage);[/align]
[align=left] socket.Shutdown(SocketShutdown.Both);[/align]
[align=left] socket.Close();[/align]
[align=left]// }[/align]
[align=left]// while(byteMessage!=null);[/align]
}
相关文章推荐
- API SOCKET基础(一) TCP建立连接并通信
- Socket网络通信理论基础搜集(TCP/IP协议栈与数据包封装+TCP与UDP的区别)
- socket通信基础(一)
- socket编程基础1(大、小端,IP地址格式转换,通信主机信息获取)
- JAVA-socket通信基础(2)
- Android基础入门教程——7.6.2 基于TCP协议的Socket通信(1)
- socket通信基础(二)
- JAVA-Socket通信基础
- iOS Socket通信基础(一)
- API SOCKET基础(二) UDP通信
- Android学习笔记三十:socket网络通信基础(示例,出错代码)
- java基础之Socket通信
- Lniux网络通信一(基础知识点+Socket模型)
- vc++ socket通信基础 client and server demo
- 【网络编程基础】Linux下进程通信方式(共享内存,管道,消息队列,Socket)
- Android基础入门教程——7.6.3 基于TCP协议的Socket通信(2)
- java实现最基础的socket网络通信
- 超基础的网络编程02:基于TCP的Socket通信
- java网络编程基础——UDP通信之DatagramSocket
- JAVA NIO(二)基础 内存管理 文件锁定 Socket服务器客户端通信