初级线程题:用两个线程模拟对话 用两个线程模拟对话~~任何一个线程都可以随时收发信息,小弟主要不理解的是什么叫“接收”信息,请各位大哥提点下,有必要的话花点时间写下例子~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Socket.getInputStream()获取输入流用于“接收”Socket.getOutputStream()获取输出流用于“发送” import java.io.*;import java.net.*;import java.util.*;.public class EchoServer { public static void main(String[] args) { try { // establish server socket ServerSocket s = new ServerSocket(8189); // wait for client connection Socket incoming = s.accept(); try { InputStream inStream = incoming.getInputStream(); OutputStream outStream = incoming.getOutputStream(); Scanner in = new Scanner(inStream); PrintWriter out = new PrintWriter(outStream, true); out.println("Hello! Enter BYE to exit."); // echo client input boolean done = false; while (!done && in.hasNextLine()) { String line = in.nextLine(); out.println("Echo: " + line); if (line.trim().equals("BYE")) done = true; } } finally { incoming.close(); } } catch (IOException e) { e.printStackTrace(); } }}cmd-> telnet localhost 8189这是我们上课的一个小例子。楼主可以参考下。 谢谢大家帮忙了~~由于只学到Thread runnable wait notify这些小知识的应用,我用互斥直接写了个小程序,ServerSocket这些类老师还没提到~在作业里就不应用了~我的主要问题在于随时收发信息的话,我就一个键盘,怎么确定我输入的是A的话还是B的话类~~~要是互斥的话,那就算不上“随时”了~~对吧? 一个socket程序一般有客户端和服务端如果是命令台的话,就对应有两个命令台窗口来接收输入输出,所以不会有判断A还是B的问题.。如果有GUI界面,则客户端和服务端就各自有一个界面..如果必须在一个窗口下聊天的话,只能在发的消息里加一些判断标志是A说的还是B说的。收发消息,若果简单的话就是发字符串.复杂点的话就把要发的内容封装成一个对象。 ubuntu--很奇怪的问题撒-- 请问如何将IPV6地址转换成长整型呢? setLayout 的问题 新手的问题————一个异常错误 救命啊,各位大哥大们! 急!!如何在普通java类中获得相对路径和绝对路径,解决后马上结贴。 关于applet在ie中显示不出的问题 如何将一个int放入到一个byte buf[]中的指定位置? 如何使用Java制作ie风格的工具栏? (100分)哪里有Visual Cafe和Jbuilder 6下载?不要试用版.清各位大虾帮忙. 高手进啊······ Lable编译
Socket.getOutputStream()获取输出流用于“发送”
import java.net.*;
import java.util.*;
.
public class EchoServer {
public static void main(String[] args) {
try {
// establish server socket
ServerSocket s = new ServerSocket(8189);
// wait for client connection
Socket incoming = s.accept();
try {
InputStream inStream = incoming.getInputStream();
OutputStream outStream = incoming.getOutputStream();
Scanner in = new Scanner(inStream);
PrintWriter out = new PrintWriter(outStream, true);
out.println("Hello! Enter BYE to exit."); // echo client input
boolean done = false;
while (!done && in.hasNextLine()) {
String line = in.nextLine();
out.println("Echo: " + line);
if (line.trim().equals("BYE"))
done = true;
}
} finally {
incoming.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
cmd-> telnet localhost 8189
这是我们上课的一个小例子。楼主可以参考下。
一个socket程序一般有客户端和服务端
如果是命令台的话,就对应有两个命令台窗口来接收输入输出,所以不会有判断A还是B的问题.。
如果有GUI界面,则客户端和服务端就各自有一个界面..如果必须在一个窗口下聊天的话,只能在发的消息里加一些判断标志是A说的还是B说的。收发消息,若果简单的话就是发字符串.复杂点的话就把要发的内容封装成一个对象。