我今天在eclipse上编写了一个java聊天程序的客户端,但是老是出现编译错误的提示,烦请各位大

我今天在eclipse上编写了一个java聊天程序的客户端,但是老是出现编译错误的提示,烦请各位大,第1张

原因是使用了 content assist 功能,eclipse会去查找java的源代码,首先在本地找,然后到internet上找。本地默认是没有java的源代码。computing additional info表示在搜索internet上的java的源代码

解决办法:

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!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8188824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存