111,125
社区成员
发帖
与我相关
我的任务
分享using System.Windows.Forms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.IO;
namespace socket_server
{
//服务器
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false; //可以调试时,不捕捉控件创建线程错误
}
Thread thThreadRead;
Socket s1=new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//监听用
Socket s3;//聊天用
TcpListener tlTcpListen;
NetworkStream nsStream;
StreamReader srRead;
StreamWriter swWriter;
TcpClient [] tcClient=new TcpClient[10];
int threadnum = 1;
bool blistener = true;
private void Listen()
{
try
{
tlTcpListen = new TcpListener(888); //以888端口号来初始化TcpListener实例
tlTcpListen.Start(); //开始监听
label1.Text = "正在监听";
tcClient[threadnum] = tlTcpListen.AcceptTcpClient(); //通过TCP连接请求
TcpClient newtcp = new TcpClient();
newtcp = tcClient[threadnum];
nsStream = newtcp.GetStream(); //获取用以发送、接收数据的网络基础数据流
srRead = new StreamReader(nsStream);//以得到的网络基础数据流来初始化StreamReader实例
label1.Text = "已经连接!" + threadnum.ToString();
while (true) //循环侦听
{
string sMessage = srRead.ReadLine();//从网络基础数据流中读取一行数据
richTextBox1.AppendText(sMessage + "++");
richTextBox1.ScrollToCaret();
}
}
catch (System.Security.SecurityException)
{
MessageBox.Show("侦听失败!", "错误");
}
}
private void button1_Click(object sender, EventArgs e)
{
thThreadRead = new Thread(new ThreadStart(Listen));
thThreadRead.Start();//启动线程
}
private void button3_Click(object sender, EventArgs e)
{
for (int i = 0; i < threadnum; i++)
{
NetworkStream nsStream = tcClient[i].GetStream(); //获取用以发送、接收数据的网络基础数据流
swWriter = new StreamWriter(nsStream);
swWriter.WriteLine(richTextBox2.Text);
swWriter.Flush();
}
}
}
}using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Threading;
using System.Text;
using System.Net.Sockets;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
private TcpClient tcpClient=new TcpClient("192.168.1.18", 888);
private NetworkStream nsStream;// = tcpClient.GetStream(); //创建发送数据的网络基础数据流
private bool tcpConnect = false;
private StreamReader srRead;//= new StreamReader(nsStream);
private StreamWriter swWriter;//= new StreamWriter(nsStream); //用以向网络基础数据流传送数据
Thread thThreadRead;
protected void Page_Load(object sender, EventArgs e)
{
thThreadRead = new Thread(new ThreadStart(BB));
thThreadRead.Start();//启动线程
}
void BB()
{
if (tcpClient.Connected)
{
while (true) //循环侦听
{
nsStream = tcpClient.GetStream();
srRead = new StreamReader(nsStream);
string sMessage = srRead.ReadLine();//从网络基础数据流中读取一行数据
Label1.Text = sMessage;
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
nsStream = tcpClient.GetStream();
swWriter = new StreamWriter(nsStream);
swWriter.WriteLine(TextBox1.Text);//刷新当前数据流中的数据
swWriter.Flush();
}
}
private void Listen()
{
try
{
tlTcpListen = new TcpListener(888); //以888端口号来初始化TcpListener实例
tlTcpListen.Start(); //开始监听
label1.Text = "正在监听";
while (true) //循环侦听
{
TcpClient newtcp = tlTcpListen.AcceptTcpClient(); //通过TCP连接请求
using (NetworkStream nsStream = newtcp.GetStream()) //获取用以发送、接收数据的网络基础数据流
{
using (StreamReader srRead = new StreamReader(nsStream))//以得到的网络基础数据流来初始化StreamReader实例
{
label1.Text = "已经连接!" + threadnum.ToString();
string sMessage = srRead.ReadLine();//从网络基础数据流中读取一行数据
richTextBox1.AppendText(sMessage + "++");
richTextBox1.ScrollToCaret();
srRead.Close();
}
nsStream.Close();
}
}
}
catch (System.Security.SecurityException)
{
MessageBox.Show("侦听失败!", "错误");
}
}
//private TcpClient tcpClient = new TcpClient("192.168.1.18", 888);
private NetworkStream nsStream;// = tcpClient.GetStream(); //创建发送数据的网络基础数据流
private bool tcpConnect = false;
private StreamReader srRead;//= new StreamReader(nsStream);
private StreamWriter swWriter;//= new StreamWriter(nsStream); //用以向网络基础数据流传送数据
protected void Button1_Click(object sender, EventArgs e)
{
TcpClient tcpClient = new TcpClient("192.168.1.18", 888);
using (NetworkStream nsStream = tcpClient.GetStream())
{
using (StreamWriter swWriter = new StreamWriter(nsStream))
{
swWriter.WriteLine(TextBox1.Text);//刷新当前数据流中的数据
swWriter.Flush();
swWriter.Close();
}
nsStream.Close();
}
}
Thread m_Thread;
Socket m_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//监听用
IPAddress m_IP = IPAddress.Parse("192.168.1.18");
byte[] m_Buffer = new byte[1024];
private void Listen()
{
try
{
m_Socket.Bind(new IPEndPoint(m_IP, 888));
m_Socket.Listen(5);
while (true)
{
Socket socket = m_Socket.Accept();
socket.Receive(m_Buffer);
richTextBox1.AppendText(Encoding.Default.GetString(m_Buffer));
richTextBox1.AppendText("\r\n");
}
}
catch (System.Security.SecurityException ex)
{
MessageBox.Show(ex.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
m_Thread = new Thread(new ThreadStart(Listen));
m_Thread.Start();//启动线程
Socket m_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress m_IP = IPAddress.Parse("192.168.1.18");
protected void Button1_Click(object sender, EventArgs e)
{
m_Socket.Connect(new IPEndPoint(m_IP, 888));
String strMessage = TextBox1.Text;
m_Socket.Send(Encoding.Default.GetBytes(strMessage));
}
Socket m_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress m_IP = IPAddress.Parse("192.168.1.18");
private void button1_Click(object sender, EventArgs e)
{
m_Socket.Bind(new IPEndPoint(m_IP, 888));
String strMessage = TextBox1.Text;
m_Socket.Send(Encoding.Default.GetBytes(strMessage));
}

nsStream = tcpClient.GetStream();
swWriter = new StreamWriter(nsStream);
swWriter.WriteLine(TextBox1.Text);//刷新当前数据流中的数据
swWriter.Flush();