gpt4 book ai didi

c# 服务器无法识别android

转载 作者:行者123 更新时间:2023-12-01 18:46:38 25 4
gpt4 key购买 nike

这是我的 C# 服务器127.0.0.1,端口 4444

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


public class serv
{
public static void Main()
{
try
{
IPAddress ipAd = IPAddress.Parse("127.0.0.1");
// use local m/c IP address, and

// use the same in the client


/* Initializes the Listener */
TcpListener myList = new TcpListener(ipAd, 4444);

/* Start Listeneting at the specified port */
myList.Start();

Console.WriteLine("The server is running at port 4444...");
Console.WriteLine("The local End point is: " +
myList.LocalEndpoint);
Console.WriteLine("Waiting for a connection.....");
m:
Socket s = myList.AcceptSocket();
Console.WriteLine("Connection accepted from " + s.RemoteEndPoint);

byte[] b = new byte[100];
int k = s.Receive(b);

char cc = ' ';
string test = null;
Console.WriteLine("Recieved...");
for (int i = 0; i < k - 1; i++)
{
Console.Write(Convert.ToChar(b[i]));
cc = Convert.ToChar(b[i]);
test += cc.ToString();
}

switch (test)
{
case "1":
break;


}

ASCIIEncoding asen = new ASCIIEncoding();
s.Send(asen.GetBytes("The string was recieved by the server."));
s.Close();
Console.WriteLine("\nSent Acknowledgement");


/* clean up */
goto m;
myList.Stop();
Console.ReadLine();

}
catch (Exception e)
{
Console.WriteLine("Error..... " + e.StackTrace);
}
}

}

这是我用 JAVA 编写的 Android(客户端)代码

package com.example.aclient;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;



public class MainActivity extends Activity {
private Socket client;
private PrintWriter printwriter;
private EditText textField;
private Button button;
private String messsage;

@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

textField = (EditText) findViewById(R.id.editText1); //reference to the text field
button = (Button) findViewById(R.id.button1); //reference to the send button

//Button press event listener
button.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

messsage = textField.getText().toString(); //get the text message on the text field
textField.setText(""); //Reset the text field to blank

try {

client = new Socket("127.0.0.1", 4444); //connect to server
printwriter = new PrintWriter(client.getOutputStream(),true);
printwriter.write(messsage); //write the message to output stream

printwriter.flush();
printwriter.close();
client.close(); //closing the connection

} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});

}
}

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world" />

<EditText
android:inputType="text"
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="47dp"
android:layout_toLeftOf="@+id/textView1"
android:ems="10" >

<requestFocus />
</EditText>

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/editText1"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/textView1"
android:text="Button" />

</RelativeLayout>

为什么 C# 上的服务器无法识别 Android 客户端?我不知道如何连接C#服务器和android客户端?这是我的第一台服务器,我不知道关于服务器的很多信息......所以请帮助我!

最佳答案

127.0.0.1localhost,您自己的机器。如果您在本地 PC 上托管一个 C# 服务器,并且您有一个看起来很像 Android 的 Java 应用程序,它肯定运行在不同机器上的另一台计算机(您的手机、平板电脑或模拟的手机或平板电脑)上。您需要使用两台机器都知道的 IP 地址进行通信,并且两台机器都可以追溯到同一个物理盒子。

在您的电脑上,127.0.0.1 是您的电脑。在您的平板电脑上,127.0.0.1 是您的平板电脑,而不是您的 PC。

查找网络中 PC 的 IP(如果您运行的是 Windows,请在控制台中输入 ipconfig)并使用它。确保部署时使用公共(public) IP。

关于c# 服务器无法识别android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com