分享

java socket 通信

 履历馆 2011-05-24
package com.oms;
import java.net.ServerSocket;
import java.net.Socket;
 
public class SocketServer extends java.lang.Thread {
 
    private boolean OutServer = false;
    private ServerSocket server;
    private final int ServerPort = 8888;// 要監控的port
 
    public SocketServer() {
        try {
            server = new ServerSocket(ServerPort);
 
        } catch (java.io.IOException e) {
            System.out.println("Socket啟動有問題 !");
            System.out.println("IOException :" + e.toString());
        }
    }
 
    public void run() {
        Socket socket;
        java.io.BufferedInputStream in;
 
        System.out.println("伺服器已啟動 !");
        while (!OutServer) {
            socket = null;
            try {
                synchronized (server) {
                    socket = server.accept();
                }
                System.out.println("取得連線 : InetAddress = "
                        + socket.getInetAddress());
                // TimeOut時間
                socket.setSoTimeout(15000);
 
                in = new java.io.BufferedInputStream(socket.getInputStream());
                byte[] b = new byte[1024];
                String data = "";
                int length;
                while ((length = in.read(b)) > 0)// <=0的話就是結束了
                {
                    data += new String(b, 0, length);
                }
 
                System.out.println("我取得的值:" + data);
                in.close();
                in = null;
                socket.close();
 
            } catch (java.io.IOException e) {
                System.out.println("Socket連線有問題 !");
                System.out.println("IOException :" + e.toString());
            }
 
        }
    }
 
    public static void main(String args[]) {
//     for(int i=0;i<100;i++)
//     {
//      SocketClient.writeLog(String.valueOf(i)); 
//     }
     
        (new SocketServer()).start();
    }
 
}
 
 
package com.oms;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SocketClient {
 private String address = "127.0.0.1";// 連線的ip
 private int port = 8888;// 連線的port
 public SocketClient() {
 }
 /***
  * 发送警告信息
  */
 public void sendAlarmMsg(String msg) {
  Socket client = new Socket();
  InetSocketAddress isa = new InetSocketAddress(this.address, this.port);
  try {
   client.connect(isa, 10000);
   BufferedOutputStream out = new BufferedOutputStream(client
     .getOutputStream());
   // 送出字串
   out.write(msg.getBytes("UTF8"));
   out.flush();
   out.close();
   out = null;
   client.close();
   client = null;
//   writeLog(msg);
  } catch (java.io.IOException e) {
   String strmsg="Socket連線有問題 " + " IOException :" + e.toString();
   writeLog(strmsg);
  }
 }
 
  /**
     * 写入日志
     * */
    private  void writeLog(String str) {     
     SimpleDateFormat date = new SimpleDateFormat(
       "yyyy-MM-dd");
     SimpleDateFormat datetime = new SimpleDateFormat(
       "yyyy-MM-dd HH:mm:ss");
       Date dt=new Date();
       String strNow=date.format(dt);
       String strDateTime=datetime.format(dt);
        String filename = "Socket_"+strNow+ ".log";
//  String strjarPh=new StructuredPushConsumerImpl().getClass().
//  getProtectionDomain().getCodeSource().getLocation().getPath().substring(1);
//  strjarPh=strjarPh.substring(0,strjarPh.lastIndexOf("/")+1);
//  String flpath=strjarPh + filename;
       
        try {
            BufferedWriter bufOut;
            File f = new File(filename);
            if(f.exists()==true){
                bufOut = new BufferedWriter(new FileWriter(f,true));
            }else {
             f.createNewFile();
                bufOut = new BufferedWriter(new FileWriter(f));
            }        
            bufOut.write(strDateTime+"\t" +str);
            bufOut.newLine();
            bufOut.close();        
        } catch(Exception e) {
            System.out.println("Error");
        }
    } 
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多