c# socket异步的一次通讯问题(超级新手问题,新手新手)

我和我的代码互怼 2021-01-13 06:41:59

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace server
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("server:");
Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 8625);
server.Bind(endpoint);
server.Listen(10);
server.BeginAccept(new AsyncCallback(Accpcallback), server);
Console.ReadLine();
}

private static void Accpcallback(IAsyncResult ar)
{
Socket server = (Socket)ar.AsyncState;
Socket client = server.EndAccept(ar);
string remoteendpoint = client.RemoteEndPoint.ToString();
Console.WriteLine($"已接受客户端{remoteendpoint}的连接");

//===假设aaa是客户端发来的信息
string aaa = "";
if (aaa == "123456")
{
Console.WriteLine("数据库 有 这条信息");
}
else
{
Console.WriteLine("数据库 没有 这条信息");
}

server.BeginAccept(new AsyncCallback(Accpcallback), server);
}
}
}



using System;
using System.Text;
using System.Net.Sockets;

namespace tcpclient
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("client:");
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
client.Connect("192.168.88.223", 8625);
string remoteendpoint = client.RemoteEndPoint.ToString();
Console.WriteLine($"成功连接服务器至{remoteendpoint}");

//===发送一条信息给服务器
string aaa = "123456";

}
catch (SocketException ex)
{
Console.WriteLine(ex.Message);
}
}
}
}


以上是C/S两个端的代码,我想要的流程如下:(其实就是验证服务)
客户机连接之后,发送一条数据给服务器,服务器收到之后做相应的处理再反馈给客户机。

我看了百度上好多代码,带入后怎么修改都弄不好,求教各位大佬,给个最简单的,感谢大佬,祝大佬2021年发大财!走好运!
...全文
271 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_54582889 2021-01-15
  • 打赏
  • 举报
回复
引用 11 楼 我和我的代码互怼 的回复:
[quote=引用 6 楼 weixin_54582889 的回复:]客户端写一句发送代码再加一个接受代码

MarshalEndian mersha = new MarshalEndian();
byte[] buffer = mersha.Encode(UTF8Encoding.UTF8.GetBytes(aaa));
client.Send(buffer, 0, buffer.Length, SocketFlags.None);

byte[] data = new byte[1024 * 10];
int le = login.client.Receive(data);
            string res = Encoding.UTF8.GetString(data, 0, le);
string res = Encoding.UTF8.GetString(data, 0, le);

服务器端也需要接受发送代码

byte[] result = new byte[1024];
client.Receive(result);
ReceiveMessage = Encoding.UTF8.GetString(result);

string aaa = "数据库  有    这条信息";
byte[] buffer = mersha.Encode(UTF8Encoding.UTF8.GetBytes(aaa));
client.Send(buffer, 0, buffer.Length, SocketFlags.None);
你的代码在我这里无法运行,有个引用我搞定不了,不过根据思路我稍微修改一下,发现可以使用,感谢大佬[/quote] 都是菜鸡,共同进步
  • 打赏
  • 举报
回复
引用 6 楼 weixin_54582889 的回复:
客户端写一句发送代码再加一个接受代码

MarshalEndian mersha = new MarshalEndian();
byte[] buffer = mersha.Encode(UTF8Encoding.UTF8.GetBytes(aaa));
client.Send(buffer, 0, buffer.Length, SocketFlags.None);

byte[] data = new byte[1024 * 10];
int le = login.client.Receive(data);
            string res = Encoding.UTF8.GetString(data, 0, le);
string res = Encoding.UTF8.GetString(data, 0, le);

服务器端也需要接受发送代码

byte[] result = new byte[1024];
client.Receive(result);
ReceiveMessage = Encoding.UTF8.GetString(result);

string aaa = "数据库  有    这条信息";
byte[] buffer = mersha.Encode(UTF8Encoding.UTF8.GetBytes(aaa));
client.Send(buffer, 0, buffer.Length, SocketFlags.None);
你的代码在我这里无法运行,有个引用我搞定不了,不过根据思路我稍微修改一下,发现可以使用,感谢大佬
良朋 2021-01-14
  • 打赏
  • 举报
回复
去CSDN下载资源里下一个吧,很多经典实例的。
weixin_54582889 2021-01-14
  • 打赏
  • 举报
回复
客户端写一句发送代码再加一个接受代码

MarshalEndian mersha = new MarshalEndian();
byte[] buffer = mersha.Encode(UTF8Encoding.UTF8.GetBytes(aaa));
client.Send(buffer, 0, buffer.Length, SocketFlags.None);

byte[] data = new byte[1024 * 10];
int le = login.client.Receive(data);
            string res = Encoding.UTF8.GetString(data, 0, le);
string res = Encoding.UTF8.GetString(data, 0, le);

服务器端也需要接受发送代码

byte[] result = new byte[1024];
client.Receive(result);
ReceiveMessage = Encoding.UTF8.GetString(result);

string aaa = "数据库  有    这条信息";
byte[] buffer = mersha.Encode(UTF8Encoding.UTF8.GetBytes(aaa));
client.Send(buffer, 0, buffer.Length, SocketFlags.None);
wtnu200 2021-01-14
  • 打赏
  • 举报
回复
这一类网上代码太多了 https://www.cnblogs.com/yuanshuang-club/p/11407789.html
edwin123654 2021-01-14
  • 打赏
  • 举报
回复
客户端没有发送,服务器没有接受
派大奇 2021-01-14
  • 打赏
  • 举报
回复
supersocket 简单实用 真香
八爻老骥 2021-01-13
  • 打赏
  • 举报
回复
两端都没写接收代码,BebinRecieve呢,放哪去了?
  • 打赏
  • 举报
回复
说来惭愧,我不是科班的,都是一点一点自学的,并且我的工作也不是编程,断断续续,爱好而已
gs0038 2021-01-13
  • 打赏
  • 举报
回复
大哥,你这百度是假的吧,百度上一大堆socket,你这13年的会员是咋混的

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧