基于NetBeans的Socket通信(单线程)
来源:互联网 发布:mac压缩zip 编辑:程序博客网 时间:2024/06/02 16:29
Client 端代码:
import java.io.*;
import java.io.IOException;
import java.net.*;
/*
* Frame1.java
* Created on 2007年6月25日, 下午3:43
*/
/**
* @author wangrui
*/
public class Frame1 extends java.awt.Frame {
/** Creates new form Frame1 */
public Frame1() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//<editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
private void initComponents() {
jButton1 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jButton2 = new javax.swing.JButton();
setTitle("Client(/u738b/u745e)");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jButton1.setText("/u53d1/u9001");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jButton2.setText("/u8fde/u63a5");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(jButton2)
.add(jButton1)
.add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 315, Short.MAX_VALUE))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.add(jButton2)
.add(12, 12, 12)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jButton1)
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO 将在此处添加您的处理代码:
String str = new String();
str = jTextArea1.getText();
out.println(str);
out.flush();
jTextArea1.setText("");
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
try {
s = new Socket("127.0.0.1",4272);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out = new PrintWriter(s.getOutputStream());
jTextArea1.setText("connacted!!!");
} catch (IOException ex) {
ex.printStackTrace();
}
Thread t = new Thread(new dis(),"dis");
t.start();
}//GEN-LAST:event_jButton2ActionPerformed
/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
System.exit(0);
}//GEN-LAST:event_exitForm
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Frame1().setVisible(true);
}
});
}
class dis implements Runnable{
public void run(){
String str = new String();
do{
try {
//jTextArea1.setText("here");
str = in.readLine();
jTextArea1.setText(str);
} catch (IOException ex) {
ex.printStackTrace();
}
}while(str != "bye");
}
}
// 变量声明 - 不进行修改//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// 变量声明结束//GEN-END:variables
//ServerSocket ss = null;
Socket s = null;
BufferedReader in = null;
PrintWriter out = null;
}
Server端代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/*
* Frame2.java
*
* Created on 2007年6月25日, 下午4:28
*/
/**
*
* @author wangrui
*/
public class Frame2 extends java.awt.Frame {
/** Creates new form Frame2 */
public Frame2() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//<editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
setTitle("Server(/u738b/u745e)");
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);
jButton1.setText("/u53d1/u9001");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("/u542f/u52a8");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
.add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
.add(jButton2)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(jButton1))
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 288, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(29, 29, 29)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 191, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(20, 20, 20)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jButton2)
.add(jButton1))
.addContainerGap(31, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO 将在此处添加您的处理代码:
try {
ss = new ServerSocket(4272);
s = ss.accept();
jTextArea1.setText("Someone Connected");
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out = new PrintWriter(s.getOutputStream());
} catch (IOException ex) {
ex.printStackTrace();
}
Thread t = new Thread(new dis(),"dis");
t.start();
}//GEN-LAST:event_jButton2ActionPerformed
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
String str = new String();
str = jTextArea1.getText();
out.println(str);
out.flush();
jTextArea1.setText("");
}//GEN-LAST:event_jButton1ActionPerformed
/** Exit the Application */
private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
System.exit(0);
}//GEN-LAST:event_exitForm
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Frame2().setVisible(true);
}
});
}
class dis implements Runnable{
public void run(){
String str = new String() ;
do{
try {
//jTextArea1.setText("dis running");
str = in.readLine();
jTextArea1.setText(str);
} catch (IOException ex) {
ex.printStackTrace();
}
}while(str != "bye");
}
}
// 变量声明 - 不进行修改//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// 变量声明结束//GEN-END:variables
ServerSocket ss = null;
Socket s = null;
BufferedReader in = null;
PrintWriter out = null;
}
- 基于NetBeans的Socket通信(单线程)
- 简单实现基于UDP的Socket单线程通信
- Socket实现基于UDP的单线程通信
- 单线程socket通信
- socket客户端服务器通信(单线程)
- socket 通信代码,单线程
- Socket通信实例(二)——单线程实例
- java实现Socket通信(一)---单线程服务
- Java Socket实战之一 单线程通信
- Java Socket实战之一 单线程通信
- Java Socket实战之一 单线程通信
- Java Socket实战之一:单线程通信
- Java Socket实战之一 单线程通信
- Java Socket实战之一 单线程通信
- Java Socket实战之一 单线程通信
- Java Socket实战之一 单线程通信
- Java Socket实战之一 单线程通信
- Java Socket实战之一 单线程通信
- 24个基本指标精粹讲解(13)--DMI
- 李开复写给中国学生的信
- 汉语四六级
- 存储过程-分隔符号-多条件查询
- 24个基本指标精粹讲解(14)--OBV
- 基于NetBeans的Socket通信(单线程)
- 创造型学习
- 24个基本指标精粹讲解(15)--MIKE
- oracle安装
- 《现代计算机》杂志网站被挂木马
- 24个基本指标精粹讲解(16)--DMA
- 自己创建 minidump (自认为精品)
- Narrator.dll 的实现 ------------单词发音(转)