Server端socket.getOutputStream()产生outputStream,
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true) //true表示flush
out.println("this is from server");
client端
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream());
while( (str = br.readLine()) != null){
System.out.println(str);
}
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true) //true表示flush
out.println("this is from server");
client端
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream());
while( (str = br.readLine()) != null){
System.out.println(str);
}
解决方案 »
- 请问java swing中下拉列表框加了图标后如何改变高度,还有如何改变每个item的间距
- 用Process对象执行一命令,如果获得其输出啊?
- 初学java者 帮忙看下这个程序 据网上说是下标越界
- 几个程序题目,给点思路或直接写个程序给我看看好吗。谢谢!坐等
- jni中c++调用dll错误,跪求达人,万分紧急!!!
- 如何将多个时间序列数据与不同的Y轴关联起来?
- InputStreamReader和BufferedReader的区别?
- ArrayIndexOutOfBoundsException访问数组索引超界异常的原因
- 如何将数据库中得到的数据,添加到JTable中?
- java高级教程
- JAVA版的兄弟,我要学JAVA了,大家给我指点迷津吧,如何入门呀!!!编辑工具哪个最牛!
- java 如何获取硬盘,主板等硬件的序列号?大家来侃侃!
import java.net.*;
import java.io.*;
import java.lang.*; public class myserver{
public static void main(String args[]){
ServerSocket server;
Socket socket;
String s;
InputStream Is;
OutputStream Os;
DataInputStream DIS;
PrintStream PS; try{
//在端口4321注册服务
server=new ServerSocket(4321);
socket=server.accept(); //监听窗口,等待连接 System.out.println("server ok");
System.out.println("************************************************");
System.out.println(""); //获得对应Socket的输入/输出流
Is=socket.getInputStream();
Os=socket.getOutputStream();
//建立数据流
DIS=new DataInputStream(Is);
PS=new PrintStream(Os);
DataInputStream in=new DataInputStream(System.in);
while(true){
System.out.println("");
System.out.println("please wait client's message...");
System.out.println("");
s=DIS.readLine(); //读入从client传来的字符串
System.out.println("client said:"+s); //打印字符串
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
System.out.print("you say:");
s=in.readLine(); //读取用户输入的字符串
PS.println(s); //将读取得字符串传给client
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 } //关闭连接
DIS.close(); //关闭数据输入流
PS.close(); //关闭数据输出流
Is.close(); //关闭输入流
Os.close(); //关闭输出流
socket.close(); //关闭sockey
}
catch(Exception e){
System.out.println("Error:"+e);
}
}
}
通话器客户端
import java.net.*;
import java.io.*;
import java.lang.*; public class myclient{
public static void main(String args[]){
if (args.length<1){ //判断命令加参数没有
System.out.println("you forget the name of the server!");
System.out.println("see also: myclient yxf");
System.exit(1); //如果没加参数就退出
} Socket socket;
String s="[email protected]";
String len;
InputStream Is;
OutputStream Os;
DataInputStream DIS;
PrintStream PS;
try{
//向主机名为args[0]的服务器申请连接
//注意端口号要与服务器保持一致:4321
socket=new Socket(args[0],4321); System.out.println("client ok");
System.out.println("************************************************");
System.out.println(""); //获得对应socket的输入/输出流
Is=socket.getInputStream();
Os=socket.getOutputStream();
//建立数据流
DIS=new DataInputStream(Is);
PS=new PrintStream(Os);
DataInputStream in=new DataInputStream(System.in); while(true){
System.out.print("you say:");
s=in.readLine(); //读取用户输入的字符串
PS.println(s); //将读取得字符串传给server
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出
else
{
System.out.println("");
System.out.println("please wait server's message...");
System.out.println("");
}
s=DIS.readLine(); //从服务器获得字符串
System.out.println("server said:"+s); //打印字符串
if(s.trim().equals("BYE"))break; //如果是"BYE",就退出 } //关闭连接
DIS.close(); //关闭数据输入流
PS.close(); //关闭数据输出流
Is.close(); //关闭输入流
Os.close(); //关闭输出流
socket.close(); //关闭socket
}
catch(Exception e){
System.out.println("Error:"+e);
}
}
}