关于socket编程的一个问题。 我们先假设服务器收到一个“A”后会向客户端发送一个“b“现在想实现一个这样的客户端的函数 /** *向服务端发送一个数据 *@param data 要向服务器发送的数据 *@return 服务器返回的数据 */String sendData(String data) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想的是,客户端发送数据之后,函数就执行结束了,这让我很疚结,服务器发回来的数据会触发另外的事件,这想就没办法在原函数上return回来了。应该怎么办呢? while(true){}让socket线程循环等待 好像有个异步通信不阻塞的api,可以查下 如果你是数据报[udp]协议 那么直接两边互相调用send() 和recive()函数即可 如果是tcp那么 把数据写到客户端和服务器端的流里面发出去就可以了 这是 accept() 这是连接时用的虚拟通道 客户端 TcpClient.javaimport java.io.*;import java.net.*;class TcpClient{public static void main(String []args)throws Exception{ String sentence; String ts; BufferedReader inFormUser=new BufferedReader(new InputStreamReader(System.in)); Socket client=new Socket("计算机名",端口号); DataOutputStream outToServer=new DataOutputStream(client.getOutputStream()); BufferedReader inFromServer=new BufferedReader(new InputStreamReader(client.getInputStream())); sentence=inFromUser.readLine(); outToServer.writeBytes(sentence+'\n'); ts=inFromServer.readLine(); System.out.println("来自服务端的消息:"+ts); client.close();}}服务端 TcpServer.javaimport java.io.*;import java.net.*;public class TcpServer{public static void main(String []args)throws Exception{ String cs; String tocs; ServerSocket ss=new ServerSocket(端口号); while(true){ Socket conn=ss.accept(); BufferedReader inFromClient=new BufferedReader(new InputStreamReader(conn.getInputStream()); DataOutputStream outToClient=new DataOutputStream(inFromClient.getOutputStream()); cs=inFromClient.readLine(); tocs=cs.toLowwer()+'\n'; //转为小写,方法名 不记得了 ,会自动出来这个方法,应该是这个 outToClient.writeBytes(tocs); ss.close();}以上通过面向连接的TCP通讯,没有测试代码。大致过程就是这样的LZ说 用函数 ,你所说的是不是 无连接的UDP通讯? 关于在jsp中使用response.sendRedirect()时出现的问题 请问java的string类中的offsetByCodePoints有什么实际意义 关于从外网访问我部署的项目问题 关于字符串数组的问题,求高手过来指点江山 菜鸟问一个关于接口的基本问题? jsp数据库连接池求救?请问,该如何解决? 问一个简单的问题 问一个有关properties的问题 read/write file 简单问题,敬请赐教! 求教关于List的size问题 我做了个程序抓取网页源码,结果汉字都成了“区”这样的短码,怎么改回汉字?
让socket线程循环等待
TcpClient.java
import java.io.*;
import java.net.*;
class TcpClient{
public static void main(String []args)throws Exception
{
String sentence;
String ts;
BufferedReader inFormUser=new BufferedReader(new InputStreamReader(System.in));
Socket client=new Socket("计算机名",端口号);
DataOutputStream outToServer=new DataOutputStream(client.getOutputStream());
BufferedReader inFromServer=new BufferedReader(new InputStreamReader(client.getInputStream()));
sentence=inFromUser.readLine();
outToServer.writeBytes(sentence+'\n');
ts=inFromServer.readLine();
System.out.println("来自服务端的消息:"+ts);
client.close();
}
}服务端 TcpServer.java
import java.io.*;
import java.net.*;
public class TcpServer{
public static void main(String []args)throws Exception{ String cs;
String tocs;
ServerSocket ss=new ServerSocket(端口号);
while(true){
Socket conn=ss.accept();
BufferedReader inFromClient=new BufferedReader(new InputStreamReader(conn.getInputStream());
DataOutputStream outToClient=new DataOutputStream(inFromClient.getOutputStream());
cs=inFromClient.readLine();
tocs=cs.toLowwer()+'\n'; //转为小写,方法名 不记得了 ,会自动出来这个方法,应该是这个
outToClient.writeBytes(tocs);
ss.close();
}
以上通过面向连接的TCP通讯,没有测试代码。大致过程就是这样的
LZ说 用函数 ,你所说的是不是 无连接的UDP通讯?