服务端:
import java.io.*;// 导入io包import java.net.*; //网络包 public class chatSur {
public static void main(String[] str){//程序入口
ServerSocket soc;
Socket svrSoc; //
ObjectOutputStream objOut=null;
ObjectInputStream objIn=null;// try {
soc=new ServerSocket(7000); // 创建服务器对象 端口6666
System.out.println("Waiting for client's connecting...");
svrSoc=soc.accept(); // 等待连接
System.out.println("The client connected, you can Exit this program by type 'QUIT'");
objOut=new ObjectOutputStream(svrSoc.getOutputStream());//输出流发送信息用的
objIn=new ObjectInputStream(svrSoc.getInputStream());// 输入流
}catch(Exception e){
e.printStackTrace();
System.exit(0);//捕获到异常退出程序
}
sendMsgOut send=new sendMsgOut(objOut);//创建发送线程对象
send.start();//启动线程
getMsgFromClient get=new getMsgFromClient(objIn);//创建
get.start();
}
}class sendMsgOut extends Thread{//发送信息线程类ObjectOutputStream objOut = null;public sendMsgOut(ObjectOutputStream out){//发送方法 接收参数为输出流
objOut = out;
}
public void run()
{
String strMsg = "";
while (true)//无限循环
{
try {
strMsg = (new BufferedReader(new InputStreamReader(System.in))).readLine();//键盘输入信息,回车结束
objOut.writeObject(strMsg);//信息写入输出流
if (strMsg.equals("QUIT"))//如果输入信息等于QUIT
System.exit(0);//推出} catch (Exception e) {
}// System.out.println(strMsg);
}
}
}class getMsgFromClient extends Thread{//接收信息线程,跟上边差不多
ObjectInputStream objIn;
public getMsgFromClient(ObjectInputStream in){//接收方法
this.objIn = in;
}
public void run()
{
String strMsg = "";
while (true)
{
try {
strMsg = (String) objIn.readObject();//从输入流接收信息
System.out.println("The client said:" + strMsg);//打印信息到屏幕
if (strMsg.equals("QUIT"))
System.exit(0);//如果接收到信息为QUIT 推出
} catch (Exception e) {
}
}}}客户端:
import java.io.*;// 导入io包import java.net.*; //网络包 public class ccc {
static String ip ;
public String getIP()
{
try
{
InetAddress addr = InetAddress.getLocalHost();
ip=addr.getHostAddress().toString();//获得本机IPaddress=addr.getHostName()toString;//获得本机名称 }
catch(Exception e)
{System.out.println("Bad IP Address!"+e);}
return ip ;
}
public static void main(String[] str){//程序入口
Socket clSoc;
ObjectOutputStream obOut=null;
ObjectInputStream obIn=null;
try {
clSoc = new Socket("198.162.1.98",6900);
System.out.println(" connected, you can Exit this program by type 'QUIT'");
obOut=new ObjectOutputStream(clSoc.getOutputStream());//输出流发送信息用的
obIn=new ObjectInputStream(clSoc.getInputStream());// 输入流
}catch(Exception e){
e.printStackTrace();
System.exit(0);//捕获到异常退出程序
}
sendMsgOut send=new sendMsgOut(obOut);//创建发送线程对象
send.start();//启动线程
getMsgFromClient get=new getMsgFromClient(obIn);//创建
get.start();
}
}class sendMsgOut extends Thread{//发送信息线程类ObjectOutputStream objOut = null;public sendMsgOut(ObjectOutputStream out){//发送方法 接收参数为输出流
this.objOut = out;
}
public void run()
{
String strMsg = "";
while (true)//无限循环
{
try {
strMsg = (new BufferedReader(new InputStreamReader(System.in))).readLine();//键盘输入信息,回车结束
objOut.writeObject(strMsg);//信息写入输出流
if (strMsg.equals("QUIT"))//如果输入信息等于QUIT
System.exit(0);//推出} catch (Exception e) {
}// System.out.println(strMsg);
}
}
}class getMsgFromClient extends Thread{//接收信息线程,跟上边差不多
ObjectInputStream objIn;
public getMsgFromClient(ObjectInputStream in){//接收方法
this.objIn = in;
}
public void run()
{
String strMsg = "";
while (true)
{
try {
strMsg = (String) objIn.readObject();//从输入流接收信息
System.out.println("The client said:" + strMsg);//打印信息到屏幕
if (strMsg.equals("QUIT"))
System.exit(0);//如果接收到信息为QUIT 推出
} catch (Exception e) {
}
}}}错误信息: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at ccc.main(ccc.java:29)
import java.io.*;// 导入io包import java.net.*; //网络包 public class chatSur {
public static void main(String[] str){//程序入口
ServerSocket soc;
Socket svrSoc; //
ObjectOutputStream objOut=null;
ObjectInputStream objIn=null;// try {
soc=new ServerSocket(7000); // 创建服务器对象 端口6666
System.out.println("Waiting for client's connecting...");
svrSoc=soc.accept(); // 等待连接
System.out.println("The client connected, you can Exit this program by type 'QUIT'");
objOut=new ObjectOutputStream(svrSoc.getOutputStream());//输出流发送信息用的
objIn=new ObjectInputStream(svrSoc.getInputStream());// 输入流
}catch(Exception e){
e.printStackTrace();
System.exit(0);//捕获到异常退出程序
}
sendMsgOut send=new sendMsgOut(objOut);//创建发送线程对象
send.start();//启动线程
getMsgFromClient get=new getMsgFromClient(objIn);//创建
get.start();
}
}class sendMsgOut extends Thread{//发送信息线程类ObjectOutputStream objOut = null;public sendMsgOut(ObjectOutputStream out){//发送方法 接收参数为输出流
objOut = out;
}
public void run()
{
String strMsg = "";
while (true)//无限循环
{
try {
strMsg = (new BufferedReader(new InputStreamReader(System.in))).readLine();//键盘输入信息,回车结束
objOut.writeObject(strMsg);//信息写入输出流
if (strMsg.equals("QUIT"))//如果输入信息等于QUIT
System.exit(0);//推出} catch (Exception e) {
}// System.out.println(strMsg);
}
}
}class getMsgFromClient extends Thread{//接收信息线程,跟上边差不多
ObjectInputStream objIn;
public getMsgFromClient(ObjectInputStream in){//接收方法
this.objIn = in;
}
public void run()
{
String strMsg = "";
while (true)
{
try {
strMsg = (String) objIn.readObject();//从输入流接收信息
System.out.println("The client said:" + strMsg);//打印信息到屏幕
if (strMsg.equals("QUIT"))
System.exit(0);//如果接收到信息为QUIT 推出
} catch (Exception e) {
}
}}}客户端:
import java.io.*;// 导入io包import java.net.*; //网络包 public class ccc {
static String ip ;
public String getIP()
{
try
{
InetAddress addr = InetAddress.getLocalHost();
ip=addr.getHostAddress().toString();//获得本机IPaddress=addr.getHostName()toString;//获得本机名称 }
catch(Exception e)
{System.out.println("Bad IP Address!"+e);}
return ip ;
}
public static void main(String[] str){//程序入口
Socket clSoc;
ObjectOutputStream obOut=null;
ObjectInputStream obIn=null;
try {
clSoc = new Socket("198.162.1.98",6900);
System.out.println(" connected, you can Exit this program by type 'QUIT'");
obOut=new ObjectOutputStream(clSoc.getOutputStream());//输出流发送信息用的
obIn=new ObjectInputStream(clSoc.getInputStream());// 输入流
}catch(Exception e){
e.printStackTrace();
System.exit(0);//捕获到异常退出程序
}
sendMsgOut send=new sendMsgOut(obOut);//创建发送线程对象
send.start();//启动线程
getMsgFromClient get=new getMsgFromClient(obIn);//创建
get.start();
}
}class sendMsgOut extends Thread{//发送信息线程类ObjectOutputStream objOut = null;public sendMsgOut(ObjectOutputStream out){//发送方法 接收参数为输出流
this.objOut = out;
}
public void run()
{
String strMsg = "";
while (true)//无限循环
{
try {
strMsg = (new BufferedReader(new InputStreamReader(System.in))).readLine();//键盘输入信息,回车结束
objOut.writeObject(strMsg);//信息写入输出流
if (strMsg.equals("QUIT"))//如果输入信息等于QUIT
System.exit(0);//推出} catch (Exception e) {
}// System.out.println(strMsg);
}
}
}class getMsgFromClient extends Thread{//接收信息线程,跟上边差不多
ObjectInputStream objIn;
public getMsgFromClient(ObjectInputStream in){//接收方法
this.objIn = in;
}
public void run()
{
String strMsg = "";
while (true)
{
try {
strMsg = (String) objIn.readObject();//从输入流接收信息
System.out.println("The client said:" + strMsg);//打印信息到屏幕
if (strMsg.equals("QUIT"))
System.exit(0);//如果接收到信息为QUIT 推出
} catch (Exception e) {
}
}}}错误信息: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at ccc.main(ccc.java:29)
解决方案 »
- java.lang.IllegalStateException。请求帮助
- 求教一个问题
- 服务器端能否更新前台jsp页面的内容,具体就是服务器端能否调用JSP里面的javascript函数,并能传参数进去?
- RCP中怎样对TableViewer的不同行中的指定列分别进行不同的编辑
- JAVA主要会什么?公司需要什么样的人才?SHH要学到什么程度?
- 如何查出mysql数据库中的重复记录
- 如何理解thread-safe
- 关于wsad开发ejb的client的程序的问题,望高手相助
- Java中,有没有输入IP地址的控件?
- 刚做好的编程技术文章系统,欢迎来翻阅(Java)技术文章.
- struts2使用ajax适合用jqurey吗???
- SSH整合就这样整合而已
clSoc = new Socket("198.162.1.98",6900);
class a
{
String c;
String d;
int e;
public a(String c,String d ,in e )
{
this.c=c;
this.d=d;
this.e=e;
}
}
这样该怎样改,我改了后又出现这样的报错:
Exception in thread "main" java.lang.NoSuchMethodError: sendMsgOut.<init> ( Lrinfo;Ljava/io/ObjectOutputStream;)V
at ser.main(ser.java:38)