解决办法:
1. 找到JDK安装目录下的src.zip文件;
2. 打开eclipse: Window菜单->Preference->Java->Installed JREs;
3. 在列表中选择你eclipse正在使用的JRE,然后族配备Edit;
4. 选择rt.jar,然后点击"Source Attachment"按钮,d出对话框后选择"External File",然后把你的JDK安装目录下的卖羡src.zip文件与rt.jar关联上兆毁。
据上面显示的是:连接失败可能渣烂是连接语句出错了,好好检查一下细节方面
例如:
服务器端需要指定一个确定的端口号来创建创建服务器对象
Socket socket = new Socket("168.150.12.53",9999)
并用此端口号进行监听。。
Socket s = server.accept()// 监听窗口,等待连接
或:
Socket socket = new Socket(InetAddress.getLocalHost(),5678) // 向主机名为InetAddress.getLocalHost()的服务器申请连接
客户端需用服务器所在机器的ip以及服谈陆务器的端口作为参数创建一如侍漏个Socket对象
Socket socket = new Socket("168.160.12.42",9998)
或:
Socket socket = new Socket(InetAddress.getLocalHost(),5678) // 向主机名为InetAddress.getLocalHost()的服务器申请连接
希望能给你一点点提示。。。呵呵
//这是个聊天晌没掘程序, 在ECLIPSE 运行 Client.java 就宴核可以了。 连接是:localhost//Server 代码,
package message
import java.io.*
import java.net.*
import java.util.*
public class Server {
public static void main(String[] args) throws Exception{
System.out.print("Server")
ServerSocket socket=new ServerSocket(8888)
Vector v=new Vector()
while(true){
Socket sk=socket.accept()
DataInputStream in=new DataInputStream(sk.getInputStream())
DataOutputStream out=new DataOutputStream(sk.getOutputStream())
v.add(sk)
new ServerThread(in,v).start()
}
}
}
//ServerThread.java 代码
package message
import java.net.*
import java.io.*
import java.util.*
public class ServerThread extends Thread{
DataInputStream in
Vector all
public ServerThread(DataInputStream in,Vector v){
this.in=in
this.all=v
}
public void run()
{
while(true)
{
try{
String s1=in.readUTF()
for(int i=0i<all.size()i++)
{
Object obj=all.get(i)
Socket socket=(Socket)obj
DataOutputStream out=new DataOutputStream(socket.getOutputStream())
out.writeUTF(s1)
System.out.print(i)
out.flush()
}
System.out.print("Message send over!")
}catch(Exception e){e.printStackTrace()}
}
}
}
//ClientFrame.java 代码
package message
import java.awt.*
import java.awt.event.*
import javax.swing.*
import java.net.*
import java.io.*
public class ClientFrame extends JFrame implements ActionListener{
JButton b1=new JButton ("SendMessage")
JButton b2=new JButton("Link Server")
JTextField t1=new JTextField(20)
JTextField t2=new JTextField(20)
JLabel l=new JLabel("输入服务器名察迹字:")
JTextArea area=new JTextArea(10,20)
JPanel p1=new JPanel()
JPanel p2=new JPanel()
JPanel p3=new JPanel()
JPanel p4=new JPanel()
Socket socket
public ClientFrame()
{
this.getContentPane().add(p1)
p2.add(new JScrollPane(area))
p3.add(t1)
p3.add(b1)
p4.add(l)
p4.add(t2)
p4.add(b2)
p2.setLayout(new FlowLayout())
p3.setLayout(new FlowLayout())
p4.setLayout(new FlowLayout())
p1.setLayout(new BorderLayout())
p1.add("North",p2)
p1.add("Center",p3)
p1.add("South",p4)
b1.addActionListener(this)
b2.addActionListener(this)
this.pack()
show()
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("Link Server"))
{
try{
socket=new Socket(t2.getText(),8888)
b2.setEnabled(false)
JOptionPane.showMessageDialog(this, "Connection Success")
DataInputStream in=new DataInputStream(socket.getInputStream())
new ClientThread(in,area).start()
}
catch(Exception e1){
JOptionPane.showMessageDialog(this, "Connection Error")
e1.printStackTrace()}
}
else if(e.getActionCommand().equals("SendMessage"))
{
try{
DataOutputStream out=new DataOutputStream(socket.getOutputStream())
out.writeUTF(t1.getText())
t1.setText("")
}catch(Exception e1){e1.printStackTrace()}
}
}
}
//ClientThread.java 代码
package message
import java.net.*
import java.io.*
import javax.swing.*
public class ClientThread extends Thread {
DataInputStream in
JTextArea area
public ClientThread(DataInputStream in,JTextArea area){
this.in=in
this.area=area
}
public void run()
{
while(true){
try{
String s=in.readUTF()
area.append(s)
}
catch(Exception e){e.printStackTrace()}
}
}
}
//Client.java代码
package message
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
new ClientFrame()
}
}
// 每段代码都是个类,不要弄在一个文件里。 运行 Client.java
good luck to you!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)