NetWork网络_TCP_双向输出聊天<13/9/2017>
服务器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
using System.Net;
using System.IO;
using System.Threading;
namespace 服务器
{
class Program//服务器
{
static TcpClient client;
static void Main(string[] args)
{
//1.初始化
TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"),8888);
//localhost--本机ip
server.Start();
//2.等待连接--阻塞式的
client = server.AcceptTcpClient();
Thread r = new Thread(Read);
r.Start();
Thread w = new Thread(Write);
w.Start();
r.Join();
w.Join();
}
public static void Read()
{
NetworkStream ns = client.GetStream();
StreamReader sr = new StreamReader(ns);
while (true)
{
//Thread.Sleep(500);
Console.WriteLine(sr.ReadLine());
}
}
public static void Write()
{
StreamWriter sw = new StreamWriter(client.GetStream());
while (true)
{
//Thread.Sleep(500);
string str = Console.ReadLine();
sw.WriteLine(str);
sw.Flush();
}
}
}
}
客户端:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Sockets;
using System.Net;
using System.IO;
using System.Threading;
namespace 客户端
{
class Program//客户端
{
static TcpClient client;
static void Main(string[] args)
{
client = new TcpClient("127.0.0.1", 8888);
Thread r = new Thread(Read);
r.Start();
Thread w = new Thread(Write);
w.Start();
r.Join();
w.Join();
}
public static void Read()
{
NetworkStream ns = client.GetStream();
StreamReader sr = new StreamReader(ns);
while (true)
{
//Thread.Sleep(500);
Console.WriteLine(sr.ReadLine());
}
}
public static void Write()
{
StreamWriter sw = new StreamWriter(client.GetStream());
while (true)
{
//Thread.Sleep(500);
string str = Console.ReadLine();
sw.WriteLine(str);
sw.Flush();
}
}
}
}
先启动服务器再启动客户端(服务器实际上也是一个客户端),IP地址查询cmd然后Ipconfig,服务器和客户端保持同一网络,同一IP地址,最终实现简易聊天功能,如下: