这两个六不需要close掉啊,最多是你在搞定之后需要close掉socket啊。
创新互联公司主营比如网站建设的网络公司,主营网站建设方案,app软件开发,比如h5微信平台小程序开发搭建,比如网站营销推广欢迎比如等地区企业咨询
这两个都是你自己的方法里面的局部变量,在你每次调用完这个方法之后,java的资源回收机制会自动释放这些资源,不需要你手动close。
我也才写了一个,我不想看代码
你可以把发送和接受信息都写在一个死循环里
客户端:1.发送 2.接受
服务端:1.接受 2.发送
这个接收我第一个代码用的BufferedRedaer br = new BufferedReader(new InputStreamReader(in))
br.readline();//这个是阻塞式的,不接受到消息它是不会往后执行的,更ServerSocket里的accept方法一样的
客户端发送了就会卡在接受那,而服务器这边就会收到,服务器就会执行回复的输入,回复输入后,客户端这边就能接收到,就这样循环
第一次写的时候用的是PrintWriter进行发送,用inputstream的read方法读出来会不对
printwriter的write方法就是写入缓存,要用到String的getbytes方法,注意要使用flush方法清空缓存
读取用的是BufferedReader
作者 郗旻 附 服务器的实现代码import *;import java io *;import java awt event ActionEvent;import java awt event ActionListener;public class talkServer{ public static void main(String[] args) { try{ file://建立服务器 ServerSocket server = new ServerSocket( ); int i= ; for(;;){ Socket ining = server accept() new ServerThread(ining i) start(); i++;} }catch (IOException ex){ ex printStackTrace();} }}class ServerThread extends Thread implements ActionListener{ private int threadNum; private Socket socket; talkServerFrm t; BufferedReader in; PrintWriter out; private boolean talking=true; public ServerThread(Socket s int c) { threadNum = c;socket = s; }public void actionPerformed(ActionEvent e){ Object source = e getSource(); try{if(source==t btnSend) { out println(t getTalk());t clearTalk();}elseif(source==t btnEnd) { out println( 谈话过程被对方终止 );out close();in close();talking = false; } }catch(IOException ex){ }}public void run(){ try{t=new talkServerFrm(new Integer(threadNum) toString() this);t setSize( );t show();in = new BufferedReader(new InputStreamReader(socket getInputStream()));out = new PrintWriter(socket getOutputStream() true); }catch(Exception e){} new Thread() { public void run(){ try{while(true){ checkInput(); sleep( );} }catch (InterruptedException ex){ }catch(IOException ex){ } } } start(); while(talking) { } t dispose(); }private void checkInput() throws IOException{ String line; if((line=in readLine())!=null)t setPartner(line); file://这是界面类里的方法 file://用来将line的内容输出到用户界面 }} lishixinzhi/Article/program/Java/hx/201311/25829