C# Winform tcp/ip 通讯

服务端:一个按钮开启线程进入监听状态一个文本框接收客户端发送过来的消息客户端:一个按钮控制连接到服务端一个按钮发送用户输入text.txt消息一个文本框显示服务端反馈回来... 服务端:一个按钮 开启线程进入监听状态 一个文本框接收客户端发送过来的消息
客户端:一个按钮控制 连接到服务端 一个按钮发送用户输入text.txt消息 一个文本框显示服务端反馈回来的消息

用户输入 IP地址和端口。
请附上源码,还有另加分。
哥们~~ 回句话~~ M你都没反应~~~
展开
 我来答
stegner
2010-11-25
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
把下面所有出现IP:192.168.1.190的地方全部改成你的地址!!!
这个是纯控制台的,另外我这还有窗体的!你要就联系我!!

服务器端:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace s1
{
class Program
{
static void Main(string[] args)
{
try
{
// 把IP地址转换为IPAddress的实例
IPAddress ipAd = IPAddress.Parse("192.168.1.192");

// 初始化监听器, 端口为8001
TcpListener myList = new TcpListener(ipAd, 8001);

// 开始监听服务器端口
myList.Start();

// 输出服务器启动信息
Console.WriteLine("在8001端口启动服务...");
Console.WriteLine("本地节点为:" + myList.LocalEndpoint);
Console.WriteLine("等待连接.....");

// 等待处理接入连接请求
// 新建立的连接用套接字s表示
Socket s = myList.AcceptSocket();
Console.WriteLine("连接来自 " + s.RemoteEndPoint);

// 接收客户端信息
byte[] b = new byte[100];
int k = s.Receive(b);
Console.WriteLine("已接收...");
for (int i = 0; i < k; i++)
{
Console.Write(Convert.ToChar(b[i]));
}

// 处理客户端请求,给客户端回应
ASCIIEncoding asen = new ASCIIEncoding();
s.Send(asen.GetBytes("The string was recieved by the server."));
Console.WriteLine("\n已发送回应信息");

// 善后工作,释放资源
s.Close();
myList.Stop();
}
catch (Exception e)
{
Console.WriteLine("Error..... " + e.StackTrace);
}
}
}
}

客户端:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace c1
{
class Program
{
static void Main(string[] args)
{
try
{
TcpClient Myclient=new TcpClient();
Console.WriteLine("连接服务器................");

Myclient.Connect("192.168.1.192",8001);
Console.WriteLine("已连接........");
Console.WriteLine("请输入要传送的字符串");

string str=Console.ReadLine();
Stream Mstream=Myclient.GetStream();

ASCIIEncoding Myasc=new ASCIIEncoding();
byte[] ba=Myasc.GetBytes(str);
Console.WriteLine("传送中..............");
Mstream.Write(ba,0,ba.Length);

byte[] bb=new byte[50];
int k=Mstream.Read(bb,0,50);
for (int i=0;i<50 ;i++ ) {
Console.Write(Convert.ToChar(bb[i]));
}

Myclient.Close();

}
catch(Exception e)
{
Console.WriteLine("Something wrong: "+e.Message);
}
Console.ReadKey();
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式