加急,用Java的TCP写一对通信程序。 其实就是聊天程序。要求双方可互相通信,分服务端和客户端, 服务器当然先启动,然后可以接受客户端信息并能回复,客户端能向服务器发消息并接收来自服务器的回复。要求代码尽可能短,清晰。急用。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【wunaiylz】截止到2008-07-27 20:33:10的历史汇总数据(不包括此帖):发帖的总数量:4 发帖的总分数:210 每贴平均分数:52 回帖的总数量:13 得分贴总数量:10 回帖的得分率:76% 结贴的总数量:4 结贴的总分数:210 无满意结贴数:0 无满意结贴分:0 未结的帖子数:0 未结的总分数:0 结贴的百分比:100.00% 结分的百分比:100.00% 无满意结贴率:0.00 % 无满意结分率:0.00 % 敬礼! 凑合着先看吧.实际上很多书上都有现成的例子的. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;import java.util.List;public class ServerSocketTest{ public static void main(String[] args) { try { new SocketT(); } catch (IOException e) { e.printStackTrace(); } }}class SocketT{ public SocketT() throws IOException { System.out.println("ServerStart"); ServerSocket ss = new ServerSocket(8888); while (true) { Socket s = ss.accept(); new SocketThread(s).start(); } }}class SocketThread extends Thread{ private Socket s; public SocketThread(Socket s) { this.s = s; } public void run() { BufferedReader br = null; PrintWriter pw = null; try { br = new BufferedReader(new InputStreamReader(s.getInputStream())); pw = new PrintWriter(s.getOutputStream()); String s = br.readLine(); while (s!=null&&!s.equals("end")) { System.out.println(this.getName() + ":" + s); s = this.getName() + "说:" + s; pw.println(s); pw.flush(); Thread.sleep(500); s=br.readLine(); } System.out.println(this.getName()+" exit"); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } finally { if (br != null) try { br.close(); } catch (IOException e) { e.printStackTrace(); } if (pw != null) pw.close(); } }}import java.io.*;import java.net.*;import java.util.Scanner;public class ClientSocketTest{ public static void main(String[] args) { BufferedReader br = null; PrintWriter pw = null; try { System.out.println("newClient"); Socket clientSocket = new Socket("127.0.0.1", 8888); br = new BufferedReader(new InputStreamReader(clientSocket .getInputStream())); pw = new PrintWriter(clientSocket.getOutputStream()); Scanner scan = new Scanner(System.in); String s; //输入end,向服务器发送. while (!(s = scan.nextLine()).equals("end")) { pw.println(s); pw.flush(); System.out.println(br.readLine()); } System.out.println("end"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (pw != null) pw.close(); if (br != null) try { br.close(); } catch (IOException e) { e.printStackTrace(); } } }} 可以看看SIP协议及开发。也可以看Java Network Programming那本书。 想写一个用JAVA实现的屏幕笔的程序,各位有什么好的建议么。 请问为什么int常量可以直接赋给byte,short,而double常量不能直接赋给float? 如何获得JScrollPane中的view组建 谁能帮我做个题呀,谢谢! 关于RandomAccessFile的. 新手问题 哪种开发工作能够提高Java的水平? 如何计算得出两个日期段的日期列表? 关于Frame的问题 applet安全问题! 用ServerSocket和Socket写一个聊天程序遇到的问题 Properties类读取xml文件 弱弱的问下,java里把整个数组的全部设为某一个值的语句怎么写
楼主【wunaiylz】截止到2008-07-27 20:33:10的历史汇总数据(不包括此帖):
发帖的总数量:4 发帖的总分数:210 每贴平均分数:52
回帖的总数量:13 得分贴总数量:10 回帖的得分率:76%
结贴的总数量:4 结贴的总分数:210
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;public class ServerSocketTest
{
public static void main(String[] args)
{
try
{
new SocketT();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}class SocketT
{
public SocketT() throws IOException
{
System.out.println("ServerStart");
ServerSocket ss = new ServerSocket(8888);
while (true)
{
Socket s = ss.accept();
new SocketThread(s).start();
}
}
}class SocketThread extends Thread
{
private Socket s; public SocketThread(Socket s)
{
this.s = s;
} public void run()
{
BufferedReader br = null;
PrintWriter pw = null; try
{
br = new BufferedReader(new InputStreamReader(s.getInputStream()));
pw = new PrintWriter(s.getOutputStream());
String s = br.readLine();
while (s!=null&&!s.equals("end"))
{
System.out.println(this.getName() + ":" + s);
s = this.getName() + "说:" + s;
pw.println(s);
pw.flush();
Thread.sleep(500);
s=br.readLine();
}
System.out.println(this.getName()+" exit");
}
catch (IOException e)
{
e.printStackTrace();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
finally
{
if (br != null)
try
{
br.close();
}
catch (IOException e)
{
e.printStackTrace();
}
if (pw != null)
pw.close();
}
}
}import java.io.*;
import java.net.*;
import java.util.Scanner;public class ClientSocketTest
{
public static void main(String[] args)
{
BufferedReader br = null;
PrintWriter pw = null;
try
{
System.out.println("newClient");
Socket clientSocket = new Socket("127.0.0.1", 8888);
br = new BufferedReader(new InputStreamReader(clientSocket
.getInputStream()));
pw = new PrintWriter(clientSocket.getOutputStream());
Scanner scan = new Scanner(System.in);
String s;
//输入end,向服务器发送.
while (!(s = scan.nextLine()).equals("end"))
{
pw.println(s);
pw.flush();
System.out.println(br.readLine());
}
System.out.println("end");
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
if (pw != null)
pw.close();
if (br != null)
try
{
br.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}