网络编程SOCKET实现一对一网络聊天,Ctrl+F5
2017-09-12 11:46
423 查看
[align=left]usingSystem;[/align]
[align=left]usingSystem.Collections.Generic;[/align]
[align=left]usingSystem.Linq;[/align]
[align=left]usingSystem.Text;[/align]
[align=left]usingSystem.Threading.Tasks;[/align]
[align=left]usingSystem.Net;[/align]
[align=left]usingSystem.Net.Sockets;[/align]
[align=left]///<summary>[/align]
[align=left]///服务器[/align]
[align=left]///</summary>[/align]
[align=left]namespaceLesson2[/align]
[align=left]{[/align]
[align=left] classProgram[/align]
[align=left] {[/align]
staticvoidMain(string[]
args)
[align=left] {[/align]
[align=left] //实例化类对象[/align]
Programprogram
=newProgram();
Console.WriteLine("请选择:1
服务器。 2 客户端。");
stringinput
=Console.ReadLine();
if(input
=="1")
[align=left] {[/align]
[align=left] Console.WriteLine("您的选择是服务器");[/align]
// MyServer();如果想调用
需要把MyServer();共有静态方法
[align=left] //调用服务器方法[/align]
[align=left] program.MyServer();[/align]
[align=left] }[/align]
if(input
=="2")
[align=left] {[/align]
[align=left] Console.WriteLine("您的选择是客户端");[/align]
[align=left] //调用客户端方法[/align]
[align=left] program.Clinet();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] ///服务端[/align]
[align=left] ///</summary>[/align]
[align=left] voidMyServer()[/align]
[align=left] {[/align]
[align=left] //1.创建socket[/align]
Socketsocket
=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
[align=left] //2.创建scoket和端口号使用bind方法[/align]
[align=left] //192.168.25.159是自己的地址[/align]
IPAddressipAddress
=IPAddress.Parse("192.168.XX.XXX");//("192.168.25.81");//("192.168.25.159");
IPEndPointipEndPoint
=newIPEndPoint(ipAddress,
10001);
[align=left] socket.Bind(ipEndPoint);[/align]
[align=left] //3监听该端口号 listen[/align]
[align=left] //监听35个客户端[/align]
[align=left] socket.Listen(35);[/align]
[align=left] //3.1接受来自客户端的请求[/align]
byte[]
mybyte =newbyte[1024];
[align=left] try[/align]
[align=left] {[/align]
[align=left] //阻塞的过程[/align]
[align=left] SockettempSocket=socket.Accept();[/align]
[align=left] while(true)[/align]
[align=left] {[/align]
[align=left] //接受数据的长度,长度就是dataLength[/align]
intdataLength
= tempSocket.Receive(mybyte);
[align=left] //只取从0开始数据长度的一段信息,data是客户端发来的消息[/align]
stringdata
=Encoding.UTF8.GetString(mybyte,0, dataLength);
[align=left] Console.WriteLine("从客户端发来的消息为:"+data);[/align]
//通用字符集(Universal
Character Set) UTF abbr. Unicode转换格式(UCS Transformation Format)
//发送一下数据
编码
byte[]
sendData =Encoding.UTF8.GetBytes("发送成功");
[align=left] tempSocket.Send(sendData);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] catch(Exceptione)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine(e.Message);[/align]
[align=left] //throw;[/align]
[align=left] }[/align]
[align=left] finally{[/align]
[align=left] //最后,执行,关闭Socket[/align]
[align=left] socket.Close();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] //客户端[/align]
voidClinet()
{
[align=left] //1.创建socket[/align]
Socketsocket
=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
[align=left] //2.使用connect连接制定计算机的端口[/align]
[align=left] //192.168.25.81服务器地址[/align]
IPAddressipAddress
=IPAddress.Parse("192.168.XX.XXX");
IPEndPointipEndPoint
=newIPEndPoint(ipAddress,
10001);
[align=left] socket.Connect(ipEndPoint);[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] stringinput=string.Empty;[/align]
[align=left] while(input!="2")[/align]
[align=left] {[/align]
[align=left] //[/align]
[align=left] Console.WriteLine("请输入您要发送的信息");[/align]
stringmsg
=Console.ReadLine();
[align=left] //Empty,空的[/align]
if(msg!=string.Empty)//空的时候用双引号“”表示
用null?
[align=left] {[/align]
[align=left] //3.发送数据[/align]
byte[]
sendData =Encoding.UTF8.GetBytes(msg);
[align=left] socket.Send(sendData);[/align]
[align=left] //接受到的数据[/align]
byte[]
receiveData =newbyte[1024];
intlength
= socket.Receive(receiveData);
stringstr
=Encoding.UTF8.GetString(receiveData,0,length);
[align=left] Console.WriteLine(str);[/align]
[align=left] }[/align]
Console.WriteLine("是否继续:1继续。
2:退出。");
[align=left] input =Console.ReadLine();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] catch(Exceptione)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine(e.Message);[/align]
[align=left] }[/align]
[align=left] finally{[/align]
[align=left] //关闭[/align]
[align=left] socket.Close();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
socket是TCP/IP协议的API
TCP是数据的介质,Socket是TCP的介质.
随后会更新TCP一对一聊天室;
可爱的双斜杠很多,同学们很好理解的
[align=left]usingSystem.Collections.Generic;[/align]
[align=left]usingSystem.Linq;[/align]
[align=left]usingSystem.Text;[/align]
[align=left]usingSystem.Threading.Tasks;[/align]
[align=left]usingSystem.Net;[/align]
[align=left]usingSystem.Net.Sockets;[/align]
[align=left]///<summary>[/align]
[align=left]///服务器[/align]
[align=left]///</summary>[/align]
[align=left]namespaceLesson2[/align]
[align=left]{[/align]
[align=left] classProgram[/align]
[align=left] {[/align]
staticvoidMain(string[]
args)
[align=left] {[/align]
[align=left] //实例化类对象[/align]
Programprogram
=newProgram();
Console.WriteLine("请选择:1
服务器。 2 客户端。");
stringinput
=Console.ReadLine();
if(input
=="1")
[align=left] {[/align]
[align=left] Console.WriteLine("您的选择是服务器");[/align]
// MyServer();如果想调用
需要把MyServer();共有静态方法
[align=left] //调用服务器方法[/align]
[align=left] program.MyServer();[/align]
[align=left] }[/align]
if(input
=="2")
[align=left] {[/align]
[align=left] Console.WriteLine("您的选择是客户端");[/align]
[align=left] //调用客户端方法[/align]
[align=left] program.Clinet();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] ///<summary>[/align]
[align=left] ///服务端[/align]
[align=left] ///</summary>[/align]
[align=left] voidMyServer()[/align]
[align=left] {[/align]
[align=left] //1.创建socket[/align]
Socketsocket
=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
[align=left] //2.创建scoket和端口号使用bind方法[/align]
[align=left] //192.168.25.159是自己的地址[/align]
IPAddressipAddress
=IPAddress.Parse("192.168.XX.XXX");//("192.168.25.81");//("192.168.25.159");
IPEndPointipEndPoint
=newIPEndPoint(ipAddress,
10001);
[align=left] socket.Bind(ipEndPoint);[/align]
[align=left] //3监听该端口号 listen[/align]
[align=left] //监听35个客户端[/align]
[align=left] socket.Listen(35);[/align]
[align=left] //3.1接受来自客户端的请求[/align]
byte[]
mybyte =newbyte[1024];
[align=left] try[/align]
[align=left] {[/align]
[align=left] //阻塞的过程[/align]
[align=left] SockettempSocket=socket.Accept();[/align]
[align=left] while(true)[/align]
[align=left] {[/align]
[align=left] //接受数据的长度,长度就是dataLength[/align]
intdataLength
= tempSocket.Receive(mybyte);
[align=left] //只取从0开始数据长度的一段信息,data是客户端发来的消息[/align]
stringdata
=Encoding.UTF8.GetString(mybyte,0, dataLength);
[align=left] Console.WriteLine("从客户端发来的消息为:"+data);[/align]
//通用字符集(Universal
Character Set) UTF abbr. Unicode转换格式(UCS Transformation Format)
//发送一下数据
编码
byte[]
sendData =Encoding.UTF8.GetBytes("发送成功");
[align=left] tempSocket.Send(sendData);[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] catch(Exceptione)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine(e.Message);[/align]
[align=left] //throw;[/align]
[align=left] }[/align]
[align=left] finally{[/align]
[align=left] //最后,执行,关闭Socket[/align]
[align=left] socket.Close();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] //客户端[/align]
voidClinet()
{
[align=left] //1.创建socket[/align]
Socketsocket
=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
[align=left] //2.使用connect连接制定计算机的端口[/align]
[align=left] //192.168.25.81服务器地址[/align]
IPAddressipAddress
=IPAddress.Parse("192.168.XX.XXX");
IPEndPointipEndPoint
=newIPEndPoint(ipAddress,
10001);
[align=left] socket.Connect(ipEndPoint);[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] stringinput=string.Empty;[/align]
[align=left] while(input!="2")[/align]
[align=left] {[/align]
[align=left] //[/align]
[align=left] Console.WriteLine("请输入您要发送的信息");[/align]
stringmsg
=Console.ReadLine();
[align=left] //Empty,空的[/align]
if(msg!=string.Empty)//空的时候用双引号“”表示
用null?
[align=left] {[/align]
[align=left] //3.发送数据[/align]
byte[]
sendData =Encoding.UTF8.GetBytes(msg);
[align=left] socket.Send(sendData);[/align]
[align=left] //接受到的数据[/align]
byte[]
receiveData =newbyte[1024];
intlength
= socket.Receive(receiveData);
stringstr
=Encoding.UTF8.GetString(receiveData,0,length);
[align=left] Console.WriteLine(str);[/align]
[align=left] }[/align]
Console.WriteLine("是否继续:1继续。
2:退出。");
[align=left] input =Console.ReadLine();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] catch(Exceptione)[/align]
[align=left] {[/align]
[align=left] Console.WriteLine(e.Message);[/align]
[align=left] }[/align]
[align=left] finally{[/align]
[align=left] //关闭[/align]
[align=left] socket.Close();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
socket是TCP/IP协议的API
TCP是数据的介质,Socket是TCP的介质.
随后会更新TCP一对一聊天室;
可爱的双斜杠很多,同学们很好理解的
相关文章推荐
- java网络编程一:Socket用法,简单模拟一对一聊天
- 基于Socket的java网络编程(实现类似于QQ两人聊天的交互)
- 高并发MINA框架,网络编程(SOCKET)实现,简单的网络聊天DEMO
- Python进阶开发之网络编程,socket实现在线聊天机器人
- java网络编程一:Socket用法,简单模拟一对一聊天
- Java网络----Socket, 多线程实现内网多人聊天及一对一聊天
- java网络编程一:模拟qq聊天功能,实现一对一聊天
- 一个java网络编程Socket的例子,实现Server与Client聊天
- 在java网络编程中实现服务器和客户端一对一的聊天
- Python网络编程之基于socket实现聊天机器人
- java网络编程一:Socket用法,简单模拟一对一聊天
- java网络socket编程(七)之java中NIO实现聊天系统的群聊功能
- java网络socket编程(八)之java中BIO实现聊天系统的群聊功能
- java网络编程一:Socket用法,简单模拟一对一聊天
- iOS网络编程实践--NSStream实现TCP Socket iPhone客户端
- Python网络编程之socketserver实现多并发
- Java_常瑞鹏 java_网络编程实现一个 聊天程序
- DirectX编程:C#中利用Socket实现网络语音通信[初级版本]
- Java网络编程ServerSocket的实现服务器与用户之间的通信的基本步骤
- Linux下网络socket编程——实现服务器(select)与多个客户端通信