C#.NET通过Socket实现平行主机之间网络通讯
2010-09-30 22:46:31 来源:WEB开发网2.2客户端端
Program.cs:
代码
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace ConsoleClientSocketDemo
{
class Program
{
static void Main(string[] args)
{
int recvPort = 600;//客户端一直对600端口进行侦听---接收图片的端口
RecvPic recvPic = new RecvPic(recvPort);//监听接收来自图片服务器的图片以及客户端的命令
Thread tRecvPic = new Thread(new ThreadStart(recvPic.thread));
tRecvPic.IsBackground = true;
tRecvPic.Start();
string strPicServerIP = "127.0.0.1";//图片服务器的IP----127.0.0.1(localhost)--以本机为例
int sendRequestPort = 400;//发送图片请求的端口
SendStrMsg(strPicServerIP, sendRequestPort);
Console.ReadKey();//直接main里边最后加个Console.Read()不就好了。要按键才退出。
}
/// <summary>
/// 向目标主机发送字符串 请求图片
/// </summary>
/// <param name="strPicServerIP">目标图片服务器IP</param>
/// <param name="sendRequestPort">目标图片服务器接收请求的端口</param>
private static void SendStrMsg(string strPicServerIP, int sendRequestPort)
{
//可以在字符串编码上做文章,可以传送各种信息内容,目前主要有三种编码方式:
//1.自定义连接字符串编码--微量
//2.JSON编码--轻量
//3.XML编码--重量
string strPicRequest = "PicRequest;Hello world,need some pictures~!";//图片请求
IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse(strPicServerIP.ToString()), sendRequestPort);
Socket answerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
answerSocket.Connect(ipEndPoint);//建立Socket连接
byte[] sendContents = Encoding.UTF8.GetBytes(strPicRequest);
answerSocket.Send(sendContents, sendContents.Length, 0);//发送二进制数据
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
finally
{
answerSocket.Close();
}
}
}
}
更多精彩
赞助商链接