我写了下面的两个类,是想实C/S之间的通信.我要怎么设置类中的值,才能实现通信呢?我在运行SocketClient 时,出现java.net.ConnectException: Connection refused: connect的异常!请指教一下,小弟.package urlsocket;
import java.net.*;
import java.io.*;public class SocketClient {
Socket s=null;
DataInputStream instream=null;
DataOutputStream outstream=null;
public SocketClient() {
try{
init();
waitData();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
void init() throws Exception
{
s=new Socket("192.168.0.102",8765);
instream=new DataInputStream(s.getInputStream());
outstream=new DataOutputStream(s.getOutputStream());
s.setSoTimeout(3000);
}
void waitData()
{
while(true)
{
try{
String str=instream.readUTF();
System.out.println("Client accept:"+str);
str=Integer.toString(Integer.parseInt(str)+1);
outstream.writeUTF(str);
}catch(Exception e)
{
System.out.println(e.toString());
break;
}
}
}
public static void main(String[] args) {
new SocketClient();
}
}
package urlsocket;import java.net.*;
import java.io.*;public class SocketServer {
ServerSocket ss=null;
Socket s=null;
DataInputStream instream=null;
DataOutputStream outstream=null;
public SocketServer() {
try{
init();
}catch(Exception e)
{
System.out.println(e.toString());
}
}
void init() throws Exception
{
ss=new ServerSocket(8765);
s.setSoTimeout(3000);
}
void waitForClient()
{
try{
s=ss.accept();
instream=new DataInputStream(s.getInputStream());
outstream=new DataOutputStream(s.getOutputStream());
outstream.writeUTF("1");
s.setSoTimeout(3000);
waitData();
}catch(Exception e)
{
System.out.println(e.toString());
}
}
void waitData()
{
while(true)
{
try{
String str=instream.readUTF();
System.out.println("Server accept:"+str);
int nu=Integer.parseInt(str)+1;
if(nu>10)
{
System.out.println("send end!");
break;
}
else
{
str=Integer.toString(nu);
outstream.writeUTF(str);
}
}catch(Exception e)
{
System.out.println(e.toString());
break;
}
}
} public static void main(String[] args) {
SocketServer socketserver = new SocketServer();
socketserver.waitForClient();
}
}
import java.net.*;
import java.io.*;public class SocketClient {
Socket s=null;
DataInputStream instream=null;
DataOutputStream outstream=null;
public SocketClient() {
try{
init();
waitData();
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
void init() throws Exception
{
s=new Socket("192.168.0.102",8765);
instream=new DataInputStream(s.getInputStream());
outstream=new DataOutputStream(s.getOutputStream());
s.setSoTimeout(3000);
}
void waitData()
{
while(true)
{
try{
String str=instream.readUTF();
System.out.println("Client accept:"+str);
str=Integer.toString(Integer.parseInt(str)+1);
outstream.writeUTF(str);
}catch(Exception e)
{
System.out.println(e.toString());
break;
}
}
}
public static void main(String[] args) {
new SocketClient();
}
}
package urlsocket;import java.net.*;
import java.io.*;public class SocketServer {
ServerSocket ss=null;
Socket s=null;
DataInputStream instream=null;
DataOutputStream outstream=null;
public SocketServer() {
try{
init();
}catch(Exception e)
{
System.out.println(e.toString());
}
}
void init() throws Exception
{
ss=new ServerSocket(8765);
s.setSoTimeout(3000);
}
void waitForClient()
{
try{
s=ss.accept();
instream=new DataInputStream(s.getInputStream());
outstream=new DataOutputStream(s.getOutputStream());
outstream.writeUTF("1");
s.setSoTimeout(3000);
waitData();
}catch(Exception e)
{
System.out.println(e.toString());
}
}
void waitData()
{
while(true)
{
try{
String str=instream.readUTF();
System.out.println("Server accept:"+str);
int nu=Integer.parseInt(str)+1;
if(nu>10)
{
System.out.println("send end!");
break;
}
else
{
str=Integer.toString(nu);
outstream.writeUTF(str);
}
}catch(Exception e)
{
System.out.println(e.toString());
break;
}
}
} public static void main(String[] args) {
SocketServer socketserver = new SocketServer();
socketserver.waitForClient();
}
}
然后再起用client调用服务器啊
起用client调用又是怎么回事?,
我是初次用的,书上也没有相关的介绍.
再运行 SocketClient.class类文件.要不然client类在运行s=new Socket("192.168.0.102",8765)的时候会发现8765这个接口没有被监听,所以会出错.
? 怎么启动server啊,我没有做过,可以说的具体一点吗?
----------------------------------------------------------------------如果在同一机器上测试两个程序,启动server的方法:
java SocketServer localhost
再开一个cmd窗口
java SocketClient
但是,最后还会出现一行java.net.ConnectException: Connection refused: connect的异常
这又是怎么回事呢?