//一个最简单的Socket服务端程序,不知道是否对你有用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
namespace SocketServer1
{
class Program
{
static bool ServiceStartFlag = false;
static Socket socket;
static Thread thread;
static void Main(string[] args)
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPHostEntry ieh = Dns.GetHostEntry("localhost");
IPAddress localServerIP = ieh.AddressList[1];
IPEndPoint localIPEndPoint = new IPEndPoint(localServerIP, 8080);
socket.Bind(localIPEndPoint);
socket.Listen(600);
thread = new Thread(new ThreadStart(AcceptClient));
thread.IsBackground = true;
thread.Start();
Console.ReadLine();
}
static void AcceptClient()
{
ServiceStartFlag = true;
while (ServiceStartFlag)
{
try
{
Socket newSocket = socket.Accept();
string onemessge = "
byte[] tmpBytes = Encoding.UTF8.GetBytes(onemessge);
newSocket.Send(tmpBytes);
Thread newThread = new Thread(new ParameterizedThreadStart(ReadMsg));
newThread.IsBackground = true;
object obj = newSocket;
newThread.Start(obj);
}
catch (SocketException ex)
{
}
}
}
static void ReadMsg(object obj)
{
Socket socket = (Socket)obj;
byte[] byteMessage = null; ;
while (ServiceStartFlag)
{
try
{
if (socket.Connected)
{
byteMessage = new byte[1000];
int len = socket.Receive(byteMessage);
if (len > 0)
{
string sTime = DateTime.Now.ToShortTimeString();
string msg = sTime + ":" + "Message from: ";
msg += socket.RemoteEndPoint.ToString() + " << " + Encoding.UTF8.GetString(byteMessage);
Console.WriteLine(msg);
byteMessage = null;
byte[] tmpBytes = Encoding.UTF8.GetBytes("Sended Sucessed!\0");
socket.Send(tmpBytes);
}
}
}
catch (SocketException ex)
{
//Console.WriteLine(ex.Message);
}
}
}
}
}