using System; using System.Collections.Generic; using System.Text; using System.Net.Sockets; using System.Threading;namespace WindowsApplication3 { class Server { public Server(int port) { TcpListener l; l = new TcpListener(port); l.Start(); Thread t = new Thread(delegate() { onaccept(l); }); t.Start(); }public Server() { TcpListener l; l= new TcpListener(99); l.Start(); Thread t = new Thread(delegate() {onaccept(l);}); t.Start(); }private void onaccept(TcpListener l) { while (true) { TcpClient c = l.AcceptTcpClient(); Thread t = new Thread(delegate() { OnReceiveAndSend(c); }); t.Start(); } }private void OnReceiveAndSend(System.Net.Sockets.TcpClient client) { System.Net.Sockets.NetworkStream ns = client.GetStream(); System.IO.StreamReader sr = new System.IO.StreamReader(ns); System.IO.StreamWriter sw = new System.IO.StreamWriter(ns); sw.AutoFlush = true; sw.WriteLine("Welcome to zy's server"); string str = ""; while (true) { str = sr.ReadLine(); sw.WriteLine(str); if(str.ToLower().Equals("bye")) { sw.Close(); sr.Close(); ns.Close(); client.Close(); break; } } }} }
谢谢楼上的,不过有好多问题啊 1.using System.Collections.Generic 这个命名空间不存在。2.Thread t = new Thread(delegate() {onaccept(l);})这种方式好像有问题,说托管无效,我把它改成:Thread t = new Thread( new ThreadStart( onaccept(l) ));后又有新的问题3.System.Net.Sockets.TcpListener.TcpListener(int)' 是旧的方法: Use TcpListener(IPAddress localaddr, int port)。 如果有完整的例子话给我贴一个哦```拜托啦```
http://www.easymessenger.cn
比较好
如果是广播式的
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Threading;namespace WindowsApplication3
{
class Server
{
public Server(int port)
{
TcpListener l;
l = new TcpListener(port);
l.Start();
Thread t = new Thread(delegate() { onaccept(l); });
t.Start();
}public Server()
{
TcpListener l;
l= new TcpListener(99);
l.Start();
Thread t = new Thread(delegate() {onaccept(l);});
t.Start();
}private void onaccept(TcpListener l)
{
while (true)
{
TcpClient c = l.AcceptTcpClient();
Thread t = new Thread(delegate() { OnReceiveAndSend(c); });
t.Start();
}
}private void OnReceiveAndSend(System.Net.Sockets.TcpClient client)
{
System.Net.Sockets.NetworkStream ns = client.GetStream();
System.IO.StreamReader sr = new System.IO.StreamReader(ns);
System.IO.StreamWriter sw = new System.IO.StreamWriter(ns);
sw.AutoFlush = true;
sw.WriteLine("Welcome to zy's server");
string str = "";
while (true)
{
str = sr.ReadLine();
sw.WriteLine(str);
if(str.ToLower().Equals("bye"))
{
sw.Close();
sr.Close();
ns.Close();
client.Close();
break;
}
}
}}
}
1.using System.Collections.Generic
这个命名空间不存在。2.Thread t = new Thread(delegate() {onaccept(l);})这种方式好像有问题,说托管无效,我把它改成:Thread t = new Thread( new ThreadStart( onaccept(l) ));后又有新的问题3.System.Net.Sockets.TcpListener.TcpListener(int)' 是旧的方法: Use TcpListener(IPAddress localaddr, int port)。
如果有完整的例子话给我贴一个哦```拜托啦```