//服务器
import java.io.*;
import java.net.*;
public class Server implements Runnable{
ServerSocket ss;
Socket socket;
boolean flag=true;
BufferedReader br;
DataOutputStream sout;
public static void main(String args[]) {
new Server().start();
}
public void start(){
try {
ss=new ServerSocket(3100);
System.out.println("取得本地端口是"+ss.getLocalPort());
while(flag)
{
socket=ss.accept();
System.out.println("连接已经建立完毕!");
InputStream is=socket.getInputStream();
br=new BufferedReader(new InputStreamReader(is));
OutputStream os=socket.getOutputStream();
sout=new DataOutputStream(os);
Thread thread=new Thread();
thread.start();
String str;
while((str=br.readLine())!=null) {
System.out.println(str);
if(str.equals("bye"))
{
flag=false;
thread.interrupt();
break;
}
}
br.close();
ss.close();
System.exit(0);
}
}catch(Exception e) {
System.out.println("失败");
}
}
public void run() {
while(true) {
try
{
int ch;
while((ch=System.in.read())!=-1)
{
sout.write((byte)ch);
if(ch=='\n')
sout.flush();
}
} catch(Exception e){}
}
}
}
//客户端
import java.io.*;
import java.net.*;
public class Client implements Runnable
{
Socket socket;
BufferedReader br;
DataOutputStream cout;
Thread thread;
boolean flag=true;
public static void main(String args[]) {
Client c=new Client();
c.start();
}
public void start(){
try
{
socket=new Socket("127.0.0.1",3000);
System.out.println("建立连接");
while(flag) {
InputStream is=socket.getInputStream();
br=new BufferedReader(new InputStreamReader(is));
OutputStream os=socket.getOutputStream();
cout=new DataOutputStream(os);
thread=new Thread();
thread.start();
String str;
while((str=br.readLine())!=null) {
System.out.println(str);
if(str.equals("bye"));
{
flag=false;
thread.interrupt();
break;
}
}
os.close();
br.close();
socket.close();
System.exit(0);
}
} catch(Exception e){System.out.println("失败");}
}public void run() {
while(true) {
int ch;
try {
while((ch=System.in.read())!=-1)
{
cout.write((byte)ch);
if(ch=='\n')
cout.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
能运行,客户端也能和服务端连接,但是为什么之后在DOS窗口下就是打不出字来,互相聊天。
import java.io.*;
import java.net.*;
public class Server implements Runnable{
ServerSocket ss;
Socket socket;
boolean flag=true;
BufferedReader br;
DataOutputStream sout;
public static void main(String args[]) {
new Server().start();
}
public void start(){
try {
ss=new ServerSocket(3100);
System.out.println("取得本地端口是"+ss.getLocalPort());
while(flag)
{
socket=ss.accept();
System.out.println("连接已经建立完毕!");
InputStream is=socket.getInputStream();
br=new BufferedReader(new InputStreamReader(is));
OutputStream os=socket.getOutputStream();
sout=new DataOutputStream(os);
Thread thread=new Thread();
thread.start();
String str;
while((str=br.readLine())!=null) {
System.out.println(str);
if(str.equals("bye"))
{
flag=false;
thread.interrupt();
break;
}
}
br.close();
ss.close();
System.exit(0);
}
}catch(Exception e) {
System.out.println("失败");
}
}
public void run() {
while(true) {
try
{
int ch;
while((ch=System.in.read())!=-1)
{
sout.write((byte)ch);
if(ch=='\n')
sout.flush();
}
} catch(Exception e){}
}
}
}
//客户端
import java.io.*;
import java.net.*;
public class Client implements Runnable
{
Socket socket;
BufferedReader br;
DataOutputStream cout;
Thread thread;
boolean flag=true;
public static void main(String args[]) {
Client c=new Client();
c.start();
}
public void start(){
try
{
socket=new Socket("127.0.0.1",3000);
System.out.println("建立连接");
while(flag) {
InputStream is=socket.getInputStream();
br=new BufferedReader(new InputStreamReader(is));
OutputStream os=socket.getOutputStream();
cout=new DataOutputStream(os);
thread=new Thread();
thread.start();
String str;
while((str=br.readLine())!=null) {
System.out.println(str);
if(str.equals("bye"));
{
flag=false;
thread.interrupt();
break;
}
}
os.close();
br.close();
socket.close();
System.exit(0);
}
} catch(Exception e){System.out.println("失败");}
}public void run() {
while(true) {
int ch;
try {
while((ch=System.in.read())!=-1)
{
cout.write((byte)ch);
if(ch=='\n')
cout.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
能运行,客户端也能和服务端连接,但是为什么之后在DOS窗口下就是打不出字来,互相聊天。
解决方案 »
- 关于EDU.oswego.cs.dl.util.concurrent包中线程队列的问题
- 求助!如何再创建一个Applet子类作为主类AP1,在类体中调用类Rectangle的方法计算长=20、宽=10的矩形周长与面积并输出。
- classloader相关基础知识
- serialVersionUID 是做什么用的?
- 两个string型的变量,存放的都是数值,但是有正负号和小数点,这样的两个string型变量如何按照数值进行比较????
- 救神主们,来救救我吧 我的头要裂了
- socket可以在internet内传输吗?
- 取钱 线程同步问题
- 各位大虾,我刚刚接触java,遇到这样的问题
- java 字符串 UTF-8转成 ANSI编码
- 用this和super调用一个方法有什么区别
- 新手求助 exit的监听器无法实现退出
客户端:socket=new Socket("127.0.0.1",3000);两个端口号都不一样,当然不能打字了~
br=new BufferedReader(new InputStreamReader(System.in));换成System.in输入命令行~