最近用c#写一个小程序,用了socket通讯类,本人小白一个,只因为了赶进度,所以稍稍
恶补了一下网络编程,我这里有几个小bug,望大神指点迷津。
一:我客户端没发一条消息,服务端的端口加1(例:原本端口为2000,第一条消息为2001,以此类推)
二:服务端接受的消息怎样让他转发出去,是不是要多new出两个对象,是ip对象,还是socket对象。
三:我想登陆的时候,用二维码扫码登陆。这个接口怎么弄。
(网络的世界是孤僻的,网络的世界时寂静的,就让我们组个团,打打怪,升级升级我们自己的经验)
代码都没有说个毛
这个是我的代码:Socket A =null;
private static byte[] result = new byte[1024]; //定义一个byte数组32位整数 缓存区,需要时调用
private static int myProt = 8885; //端口
static Socket serverSocket; //套接字接口
static void Main(string[] args)
{
//服务器IP地址
IPAddress ip = IPAddress.Parse("127.0.0.1");
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //套接字对象来链接ip地址
serverSocket.Bind(new IPEndPoint(ip, myProt)); //绑定IP地址:端口
serverSocket.Listen(10); //设定最多10个排队连接请求
Console.WriteLine("启动监听{0}成功", serverSocket.LocalEndPoint.ToString());
//通过Clientsoket发送数据
Thread myThread = new Thread(ListenClientConnect);
myThread.Start();
Console.ReadLine();
}
/// <summary>
/// 监听客户端连接
/// </summary>
private static void ListenClientConnect()
{
while (true)
{
Socket clientSocket = serverSocket.Accept();
clientSocket.Send(Encoding.ASCII.GetBytes("Server Say Hello")); //对对象发送的接受消息
Thread receiveThread = new Thread(ReceiveMessage);
receiveThread.Start(clientSocket);
}
}
public static void B() {
while (true) {
Socket B = serverSocket.Accept();//socket对象服务器连接新套接字
B.Send(Encoding.ASCII.GetBytes(""));
}
}
/// <summary>
/// 接收消息
/// </summary>
/// <param name="clientSocket"></param>
private static void ReceiveMessage(object clientSocket)
{
Socket myClientSocket = (Socket)clientSocket;
while (true)
{
try
{
//通过clientSocket接收数据
int receiveNumber = myClientSocket.Receive(result);
Console.WriteLine("接收客户端{0} 消息{1} ", myClientSocket.RemoteEndPoint.ToString(), Encoding.ASCII.GetString(result, 0, receiveNumber));
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
myClientSocket.Shutdown(SocketShutdown.Both);
myClientSocket.Close();
break;
}