您的位置:首页 > 编程语言 > Java开发

java基础第十六天

2016-06-05 21:25 465 查看
package com.qq;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Iterator;
import java.util.Set;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;

public class MyWindows {

JFrame jf;

// 联系人表格

JTable table;
// 聊天记录

JTextArea history;

// 内容

JTextArea content;

// 按钮发送

JButton jbn;

public MyWindows() {

iniWindow();
listenList();
}

public void iniWindow() {
// TODO Auto-generated method stub

jf = new JFrame();
jf.setLayout(null);
jf.setBounds(100, 100, 800, 600);

// 联系人表格
table = new JTable();
table.setBounds(550, 0, 100, 300);

// 聊天记录
history = new JTextArea();
history.append("aaa");
history.setBounds(0, 0, 500, 300);

// 内容
content = new JTextArea();
content.setBounds(0, 320, 400, 200);
content.setVisible(true);

// 按钮发送
jbn = new JButton("发送");
jbn.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
sendContent(content.getText());
ClientSocket.clientSend(content.getText());
content.setText("");
}
});

jbn.setVisible(true);
jbn.setBounds(550, 300, 100, 100);

jf.add(history);
jf.add(table);
jf.add(jbn);
jf.add(content);

jf.addWindowListener(new WindowAdapter() {

@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
ClientSocket.closeClinet();
System.exit(-1);
}
});
jf.setVisible(true);

}

public void sendContent(String content) {
this.history.append("\r\n" + content);

}

public static void main(String[] arg) {

new MyWindows();
}

public void listenList() {

try {

System.out.println(123);
ServerSocket ss = new ServerSocket(6000);
while (true) {
Socket accept = ss.accept();
InputStream inputStream = accept.getInputStream();

System.out.println(321);
ObjectInputStream ois = new ObjectInputStream(inputStream);
Set<People> st = (Set<People>) ois.readObject();

Object[] array = st.toArray();

TableModel dataModel = new AbstractTableModel() {
public int getColumnCount() {
return 1;
}

public int getRowCount() {
return array.length;
}

public Object getValueAt(int row, int col) {
return ((People) array[row]).getName();
}
};
table.setModel(dataModel);

}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();

}
}
}

package com.qq;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClientSocket {

private static Socket ss;

static {

try {
ss = new Socket("localhost", 5566);
ss.setKeepAlive(true);

} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void clientSend(String str) {
// TODO Auto-generated methodstub
try {

// System.out.println(555555);
OutputStream outputStream = ss.getOutputStream();
outputStream.write(str.getBytes());

// outputStream.close();
// ss.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public static void closeClinet() {

try {
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.qq;

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.HashSet;
import java.util.Set;

public class ListPeople {

private static Set<People> peple = new HashSet<People>();

public static void add(People pp) {
peple.add(pp);
flushList();

}

/**
* @return the peple
*/
public static Set<People> getPeple() {
return peple;
}

public static void flushList() {

for (People people : peple) {

System.out.println(987);
commClient(people.getIp(), people.getPort());
System.out.println(999);
}
}

public static void commClient(String ip, int port) {

try {
Socket ss = new Socket("localhost", port);
OutputStream outputStream = ss.getOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(outputStream);
oos.writeObject(peple);
oos.flush();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
package com.qq;

import java.io.Serializable;

public class People implements Serializable{

private String ip;
private String name;
private final int port = 6000;

/**
* @return the port
*/
public int getPort() {
return port;
}

public People() {

}

public People(String ip, String name) {
super();
this.ip = ip;
this.name = name;

}

public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

}
package com.qq;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class ServerSocket {

public static void main(String[] args) {
// TODO Auto-generated method stub

try {
java.net.ServerSocket ss = new java.net.ServerSocket(5566);

while (true) {

Socket sk = ss.accept();

new Thread(){
public void run(){
try {
System.out.println(11111111);
People pp = new People(ss.getInetAddress().getLocalHost().getHostAddress(),ss.getInetAddress().getLocalHost().getHostName());
ListPeople.add(pp);

} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();

InputStream inputStream = sk.getInputStream();

byte[] by = new byte[100];
int ln = 0;
while ((ln = inputStream.read(by)) != -1) {

System.out.println(new String(by));

}

}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java基础