Android应用的服务器端可以用C#写吗?还是只能用java写?

Android应用的服务器端可以用C#写吗?还是只能用java写?,第1张

Android应用的服务器端是可以用C#写的:

1、C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。

2、C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

3、C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。

4、C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。

namespace SocketTest{ class Program{public static void SendMessage(){Socket socket = serverSocket.Accept() Console.WriteLine("Connected a client:{0}",socket.RemoteEndPoint) socket.Send(Encoding.ASCII.GetBytes("welcome to server")) //Thread thread = new Thread(ReceiveMessage) // thread.Start() }public static void ReceiveMessage(object obj){Socket socket = (Socket)obj byte[] data = new byte[1024] int len = socket.Receive(data) string dataString = Encoding.ASCII.GetString(data, 0, len) Console.WriteLine("Receive Data:{0} from {1}", dataString,socket.RemoteEndPoint) //Thread thread = new Thread(SendMessage) //thread.Start(socket) }static Socket serverSocket static void Main(string[] args){//定义接收数据长度变量int recv //定义接收数据的缓存byte[] data = new byte[1024] //定义侦听端口IPEndPoint ipEnd = new IPEndPoint(IPAddress.Any, 5566) //定义套接字类型serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) //连接serverSocket.Bind(ipEnd) //开始侦听serverSocket.Listen(10) //控制台输出侦听状态Console.Write("Waiting for a client") //Socket client while (true){//一旦接受连接,创建一个客户端Socket client = serverSocket.Accept() //获取客户端的IP和端口IPEndPoint ipEndClient = (IPEndPoint)client.RemoteEndPoint //输出客户端的IP和端口Console.WriteLine("Connect with {0} at port {1}", ipEndClient.Address, ipEndClient.Port) //定义待发送字符string welcome = "Welcome to my server" //数据类型转换data = Encoding.ASCII.GetBytes(welcome) while (true){ try{//发送client.Send(data, data.Length, SocketFlags.None) //接收数据可以用线程也可以不用//ReceiveMessage(client) Thread thread = new Thread(ReceiveMessage) thread.Start(client) ////对data清零//data = new byte[1024] ////获取收到的数据的长度//recv = client.Receive(data) ////如果收到的数据长度为0,则退出//if (recv == 0)//break ////输出接收到的数据//Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)) //将接收到的数据再发送出去// client.Send(data, recv, SocketFlags.None) }catch (Exception){client.Close() serverSocket.Close() }}client.Close() }//Console.WriteLine("Disconnect form{0}", ipEndClient.Address) serverSocket.Close()}}}

import java.net.*

import java.io.*

public class Server {

private ServerSocket ss

private Socket socket

private BufferedReader in

private PrintWriter out

public Server() {

try {

ss = new ServerSocket(8888)

while (true) {

socket = ss.accept()

in = new BufferedReader(new InputStreamReader(socket

.getInputStream()))

out = new PrintWriter(socket.getOutputStream(), true)

String line = in.readLine()

if("hello".equals(line)){

out.println("hello")

out.close()

}

in.close()

socket.close()

}

ss.close()

} catch (IOException e) {

}

}

public static void main(String[] args) {

new Server()

}

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/93425.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-07
下一篇2023-03-07

发表评论

登录后才能评论

评论列表(0条)

    保存