下面是Server和Client的程序,想要实现的功能是打开两个cmd窗口分别运行两个程序以后,Client端和Server端的对话。程序如下:Server端:import java.net.*;
import java.io.*;public class TalkServer
{
public static void main(String[] args)
{
try
{
ServerSocket ss = null;
try
{
ss = new ServerSocket(8889);
}
catch(Exception e)
{
System.out.println("Cannot listen to: " + e);
}
String line;
Socket s = null;
try
{
s = ss.accept();
}
catch(IOException ie)
{
System.out.println("IOError: " + ie);
}
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(s.getOutputStream());
BufferedReader typeIn = new BufferedReader(new InputStreamReader(System.in));
//System.out.println("Client: " + br.readLine());
line = typeIn.readLine();
while(!line.equals("exit"))
{
pw.println(line);
pw.flush();
System.out.println("Server: " + line);
System.out.println("Client: " + br.readLine());
line = typeIn.readLine();
}
br.close();
pw.close();
s.close();
ss.close();
}
catch(Exception e)
{
System.out.println("Error: " + e);
}
}
}Client端:import java.net.*;
import java.io.*;public class TalkClient
{
public static void main(String[] args)
{
try
{
Socket s = null;
try
{
s = new Socket("127.0.0.1", 8889);
}
catch(IOException ie)
{
System.out.println("Error: " + ie);
}
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(s.getOutputStream());
BufferedReader typeIn = new BufferedReader(new InputStreamReader(System.in));
//System.out.println("Server: " + br.readLine());
String line = typeIn.readLine();
while(!line.equals("exit") )
{
pw.println(line);
pw.flush();
System.out.println("Client: " + line);
System.out.println("Server: " + br.readLine());
line = typeIn.readLine();
}
br.close();
pw.close();
s.close();
}
catch(Exception e)
{
System.out.println("Error: " + e);
}
}
}打开以后输入任何字符都不能显示。
import java.io.*;public class TalkServer
{
public static void main(String[] args)
{
try
{
ServerSocket ss = null;
try
{
ss = new ServerSocket(8889);
}
catch(Exception e)
{
System.out.println("Cannot listen to: " + e);
}
String line;
Socket s = null;
try
{
s = ss.accept();
}
catch(IOException ie)
{
System.out.println("IOError: " + ie);
}
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(s.getOutputStream());
BufferedReader typeIn = new BufferedReader(new InputStreamReader(System.in));
//System.out.println("Client: " + br.readLine());
line = typeIn.readLine();
while(!line.equals("exit"))
{
pw.println(line);
pw.flush();
System.out.println("Server: " + line);
System.out.println("Client: " + br.readLine());
line = typeIn.readLine();
}
br.close();
pw.close();
s.close();
ss.close();
}
catch(Exception e)
{
System.out.println("Error: " + e);
}
}
}Client端:import java.net.*;
import java.io.*;public class TalkClient
{
public static void main(String[] args)
{
try
{
Socket s = null;
try
{
s = new Socket("127.0.0.1", 8889);
}
catch(IOException ie)
{
System.out.println("Error: " + ie);
}
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(s.getOutputStream());
BufferedReader typeIn = new BufferedReader(new InputStreamReader(System.in));
//System.out.println("Server: " + br.readLine());
String line = typeIn.readLine();
while(!line.equals("exit") )
{
pw.println(line);
pw.flush();
System.out.println("Client: " + line);
System.out.println("Server: " + br.readLine());
line = typeIn.readLine();
}
br.close();
pw.close();
s.close();
}
catch(Exception e)
{
System.out.println("Error: " + e);
}
}
}打开以后输入任何字符都不能显示。
解决方案 »
- java如何实现鼠标拖动绘制虚框矩形,在画出矩形后矩形虚拟边框消失,矩形中间填充颜色?.
- 新手的一个小题 求高手给改造完整
- java中access DBQ问题
- poi 导出excel 如何生成树状生成结构图
- 关键字 distinct 在hibernate中给子表字段排序会报错
- 谁用过 ofbiz 做过 checkbox的例子,会的请进
- Java SQL语句带参数查询是怎么写的?
- 请教一个Java程序编写的“常见的”“不好解决”的程序书写机巧.
- 〓〓〓谁能给我一个关于JFileChooser和FileFilter的完整例子啊,没有用过,学习一下〓〓〓
- JTable太长超出边框暴难看,求救!(附上代码)
- 跪求java高手帮忙解决一个关于jtable异常
- 关于用registry.jar操作windows注册表的问题,大家来看看啊
//这个也是我学JAVASE时写的C/S聊天的程序,缺点很多。但好歹能运行起
import java.net.*;
import java.util.Scanner;
import java.io.*;public class Server { public static void main(String[] args) {
try{
ServerSocket server = new ServerSocket(1234);
while(true) {
Socket socket = server.accept();
Thread t = new Thread(new serverWriter(socket));
t.start();
Thread t1 = new Thread(new serverReader(socket));
t1.start();
}
}catch(Exception e) {
e.printStackTrace();
}
}}class serverWriter implements Runnable {
private Socket socket;
public serverWriter(Socket socket) {
this.socket = socket;
}
public void run() {
Scanner in = new Scanner(System.in);
try {
DataOutputStream output = new DataOutputStream(socket.getOutputStream());
while(true) {
String info = in.nextLine();
output.writeUTF(info);
if(info.equalsIgnoreCase("bye")) {
System.out.println("自己下线,退出程序");
System.exit(0);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
}class serverReader implements Runnable {
private Socket socket;
public serverReader(Socket socket) {
this.socket = socket;
}
public void run() {
try {
DataInputStream input = new DataInputStream(socket.getInputStream());
while(true) {
String info = input.readUTF();
System.out.println("对方说:" + info);
if(info.equalsIgnoreCase("bye")) {
System.out.println("对方下线了,结束通话…");
System.exit(0);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
//刚那个是Server的,这个是Client。毕竟是刚学时写的,LZ将就对比下看问题在哪。import java.net.*;
import java.util.Scanner;
import java.io.*;public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("localhost",1234);
Thread t = new Thread(new clientWriter(socket));
t.start();
Thread t1 = new Thread(new clientReader(socket));
t1.start();
}catch(Exception e) {
e.printStackTrace();
}
}
}class clientWriter implements Runnable {
private Socket socket;
public clientWriter(Socket socket) {
this.socket = socket;
}
public void run() {
Scanner in = new Scanner(System.in);
try {
DataOutputStream output = new DataOutputStream(socket.getOutputStream());
while(true) {
String info = in.nextLine();
output.writeUTF(info);
if(info.equalsIgnoreCase("bye")) {
System.out.println("自己下线,退出程序");
System.exit(0);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
}class clientReader implements Runnable {
private Socket socket;
public clientReader(Socket socket) {
this.socket = socket;
}
public void run() {
try {
DataInputStream input = new DataInputStream(socket.getInputStream());
while(true) {
String info = input.readUTF();
System.out.println("对方说:" + info);
if(info.equalsIgnoreCase("bye")) {
System.out.println("对方下线了,结束通话…");
System.exit(0);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
}