Java中socket编程中的问题 简单说就是客户端发2个参数给服务器端,然后服务器把这2个参数给某方法,把该方法的执行结果返回给客户端现在服务器的方法已经写好了,,,就是这个参数怎么传递最关键是用户在客户端输入第一个参数后敲回车,这时候光标还得等待用户继续输入第2个参数……这个怎么实现?服务器端怎么把得到的2个参数分拆? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该可以做成类结构传送,完成后flush 具体怎么样啊…………比客户端传一个屏幕输入的字符串过去是这样写:String sentence = inFromUser.readLine(); sendData = sentence.getBytes(); sendData是传输过去的数据现在我要传键盘输入的一个string和一个int过去…………怎么写? Client:Socket socket = new Socket(socket.getInetAddress(),socket.getPort());ObjectOutputStream toserver = new ObjectOutputStream(socket.getOutputStream());toserver.writeObject("chat");ObjectInputStream fromserver = new ObjectInputStream(socket.getInputStream());String s = fromserver.readObject().toString();toserver.flush();Server:public Proccess(Socket socket,ServerThread thread) { this.proclient = socket; this.tt = thread; this.useronline=tt.useronline; this.vchat=tt.vchat; ///////////////////////////////////////////////////////////////////////////////// /********************* 实现与服务器的通信 ***************************************/ ///////////////////////////////////////////////////////////////////////////////// try { fromClient = new ObjectInputStream(proclient.getInputStream()); out = new ObjectOutputStream(proclient.getOutputStream()); }catch(Exception e){} this.start(); } public void run() { try{ type = fromClient.readObject().toString(); } catch..... ........ } 楼上的看不懂。。忘了说我写的是UDP协议的下面是个例子:客户端在输入一串字符后,服务器返回大写的字符class UDPClient { public static void main(String args[]) throws Exception { BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName("localhost"); byte[] sendData = new byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket.send(sendPacket); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.receive(receivePacket); String modifiedSentence = new String(receivePacket.getData()); System.out.println("FROM SERVER:" + modifiedSentence); clientSocket.close(); } } class UDPServer { public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = new byte[1024]; byte[] sendData = new byte[1024]; while(true) { DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket); String sentence = new String(receivePacket.getData()); InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort(); String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); serverSocket.send(sendPacket); } } } 我现在要在客户端传2个参数进去,一个String类,一个int的....然后服务器里接收并把他们传入static String pwd(String x,int y)执行,然后返回....就是传输过程怎么样的....上面的由于只要输入一个字符串,所以一个String就够了....我只要在这个例子改下就可以了.....关键怎么改 你用的BufferedReader inFromUser = new BufferedReader(new InputStreamReader(System.in)); 缓冲字节流换成ObjectOutputStream toserver = new ObjectOutputStream(socket.getOutputStream());ObjectInputStream fromserver = new ObjectInputStream(socket.getInputStream());对象输入输出流 没看明白RMI是不是更好定义接口服务器实现接口客户端调用... 老大,你用UDP协议怎么能实现呢,万一客户端发送了两个数据,服务器只受到一个,那一边完毕,一边等待,那怎么行 liwei_0223(悲惨) :代码我已经给出了啊 ……问下楼上的,这样怎么写呢。。能否示范下 SQL语句 帮我解决一个关于JAVA布局的程序,谢谢 调用exe文件,有谁知道怎么处理麽?在线等... 小公司java面试题 请教个google map的问题。 关于Exception的问题 在c++中初始化JavaVM,找不到jvm.dll 刚学几天java有一个关于求素数的问题 谁有JPadPro 4.0的注册码,可以提供一个吗?谢谢!! 我想让我的class文件在一台没装过jdk的win98运行?怎么办呢? 初来咋到,先报个到 优化一段代码,谢谢,关于整型数组的
比客户端传一个屏幕输入的字符串过去是这样写:
String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
sendData是传输过去的数据现在我要传键盘输入的一个string和一个int过去…………
怎么写?
ObjectOutputStream toserver = new ObjectOutputStream(socket.getOutputStream());
toserver.writeObject("chat");
ObjectInputStream fromserver = new ObjectInputStream(socket.getInputStream());
String s = fromserver.readObject().toString();
toserver.flush();Server:public Proccess(Socket socket,ServerThread thread)
{
this.proclient = socket;
this.tt = thread;
this.useronline=tt.useronline;
this.vchat=tt.vchat;
/////////////////////////////////////////////////////////////////////////////////
/********************* 实现与服务器的通信 ***************************************/
/////////////////////////////////////////////////////////////////////////////////
try
{
fromClient = new ObjectInputStream(proclient.getInputStream());
out = new ObjectOutputStream(proclient.getOutputStream());
}catch(Exception e){}
this.start();
}
public void run()
{
try{
type = fromClient.readObject().toString();
}
catch.....
........
}
class UDPClient {
public static void main(String args[]) throws Exception
{
BufferedReader inFromUser =
new BufferedReader(new InputStreamReader(System.in));
DatagramSocket clientSocket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName("localhost");
byte[] sendData = new byte[1024];
byte[] receiveData = new byte[1024];
String sentence = inFromUser.readLine();
sendData = sentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress, 9876);
clientSocket.send(sendPacket);
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
clientSocket.receive(receivePacket);
String modifiedSentence =
new String(receivePacket.getData());
System.out.println("FROM SERVER:" + modifiedSentence);
clientSocket.close();
}
} class UDPServer {
public static void main(String args[]) throws Exception
{
DatagramSocket serverSocket = new DatagramSocket(9876);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while(true)
{
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase(); sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket =
new DatagramPacket(sendData, sendData.length, IPAddress,
port);
serverSocket.send(sendPacket);
}
}
} 我现在要在客户端传2个参数进去,一个String类,一个int的....然后服务器里接收并把他们传入static String pwd(String x,int y)执行,然后返回....就是传输过程怎么样的....上面的由于只要输入一个字符串,所以一个String就够了....
我只要在这个例子改下就可以了.....关键怎么改
new BufferedReader(new InputStreamReader(System.in));
缓冲字节流换成
ObjectOutputStream toserver = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream fromserver = new ObjectInputStream(socket.getInputStream());
对象输入输出流
RMI是不是更好
定义接口服务器实现接口
客户端调用...