纳金网
标题:
C#socket建立服务器并进行简单通信
[打印本页]
作者:
may
时间:
2016-3-12 23:50
标题:
C#socket建立服务器并进行简单通信
服务器端代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
namespace Csharp_socket编程_TCP协议
{
class Program
{
static void Main(string[] args)
{
//socket也是一个类,位于System.Net.Sockets下面
//1:创建一个socket
Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//2:绑定Ip地址和端口号117.25.188.1
IPAddress ipaddress = new IPAddress(new byte[]{117,25,190,168});
EndPoint point = new IPEndPoint(ipaddress,7788);//IPEndPoint类是对ip端口做了一层封装的类
tcpServer.Bind(point);//向操作系统申请一个可用的ip地址和端口号用于通信
//3:开始监听(等待客户端的连接)
Console.WriteLine("开始监听");/////////
tcpServer.Listen(100);//设置最大的连接数
Socket ClientSocket = tcpServer.Accept();//暂停当前线程知道有客户端连接进来才进行下面的代码,返回客户端的socket
Console.WriteLine("有客户端连入");///////
//4:使用返回的socket向客户端发送消息
string welcome = "welcome to you";
Console.WriteLine("向客户端发送消息" + welcome);///////
byte[] str = Encoding.UTF8.GetBytes(welcome);//利用这个方法将string型转化为byte型数组
ClientSocket.Send(str);//向客户端发送欢迎信息
//5:接收客户端发来的消息
byte[] data = new byte[1000];
int length = ClientSocket.Receive(data);
string receiveMessage = Encoding.UTF8.GetString(data, 0, length);
Console.WriteLine("收到客户端发来的消息:"+receiveMessage);
Console.ReadKey();
}
}
}
复制代码
客户端代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
namespace Csharp_socket编程_TCP协议_客户端
{
class Program
{
static void Main(string[] args)
{
//1:创建socket
Socket tcpClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//2:向服务器端发送连接请求
Console.WriteLine("向服务器端发送连接请求");//////
IPAddress ipaddress = IPAddress.Parse("117.25.190.168");//IPAddress.Parse可以把string类型的ip地址转化为ipAddress型
EndPoint point = new IPEndPoint(ipaddress, 7788);//通过ip地址和端口号定位要连接的服务器端
tcpClient.Connect(point);//建立连接
Console.WriteLine("连接到服务器");//////
//3:接收服务器端发来的消息
byte[] data = new byte[1000];
int length = tcpClient.Receive(data);//这里的byte数组用来接收数据,返回值length表示接收的数据长度
string message = Encoding.UTF8.GetString(data, 0, length);//把字节数组转化为字符串
Console.WriteLine("接收到服务器端的消息:" + message);
//4:向服务器端发送消息
string messageToServer = Console.ReadLine();
Console.WriteLine("向服务器端发送消息:" + messageToServer);//////
tcpClient.Send(Encoding.UTF8.GetBytes(messageToServer));//向服务器端发送消息
Console.ReadKey();
}
}
}
复制代码
欢迎光临 纳金网 (http://rs.narkii.com/club/)
Powered by Discuz! X2.5