亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? server.java

?? JAVA作的一個通訊工具 類似QQ 很好用 代碼注釋詳細 用了WINSOCK套接字 多線程
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.Vector;
class ServerThread extends Thread{//繼承線程
private Socket socket;//定義套接口
private BufferedReader in;//定義輸入流
private PrintWriter out;//定義輸出流
int no;//定義申請的jicq號碼
public ServerThread(Socket s) throws IOException {//線程構造函數
   socket=s;//取得傳遞參數
  in=new BufferedReader(new InputStreamReader(socket.getInputStream()));//創建輸入流
  out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);//創建輸出流
   start();//啟動線程
   }

public void run(){//線程監聽函數
 try{ while(true){
                    String str=in.readLine();//取得輸入字符串
                    if(str.equals("end"))break;//如果是結束就關閉連接
       else if(str.equals("login")) {//如果是登錄
          try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//連接數據庫
         Connection c=DriverManager.getConnection("jdbc:odbc:javaicq","sa","shift");
         String sql="select nickname,password from icq where icqno=?";                                                               
           //準備從數據庫選擇呢稱和密碼                                                            
  PreparedStatement prepare=c.prepareCall(sql);//設定數據庫查尋條件
          String icqno=in.readLine();
                int g=Integer.parseInt(icqno);//取得輸入的jicq號碼
                 System.out.println(icqno);
                 String passwd=in.readLine().trim();//取得輸入的密碼
                 System.out.println(passwd);
                 prepare.clearParameters();
                 prepare.setInt(1,g);//設定參數
                 ResultSet r=prepare.executeQuery();//執行數據庫查尋
                 if(r.next()){//以下比較輸入的號碼于密碼是否相同
                     String pass=r.getString("password").trim();
                     System.out.println(pass);
                     if(passwd.regionMatches(0,pass,0,pass.length()))
{ out.println("ok");
//如果相同就告訴客戶ok
//并且更新數據庫用戶為在線
//以及注冊用戶的ip 地址
                      //*************register ipaddress
                      String setip="update icq set ip=? where icqno=?";
                      PreparedStatement prest=c.prepareCall(setip);
                      prest.clearParameters();
                      prest.setString(1,socket.getInetAddress().getHostAddress());
                      prest.setInt(2,g);
                      int set=prest.executeUpdate();
                      System.out.println("ip="+socket.getInetAddress().getHostAddress()+"   "+set);
                      //*************ipaddress
                      //set status online
                      String status="update icq set status=1 where icqno=?";
                      PreparedStatement prest2=c.prepareCall(status);
                       prest2.clearParameters();
                       prest2.setInt(1,g);
                       int set2=prest2.executeUpdate();
                      System.out.println("status = 1  "+set2);
                      //set online
}
//否者告訴客戶失敗
                      else out.println("false");r.close();c.close();}
                 else{ out.println("false");
                 System.out.println("false");
                r.close();
                c.close();}
                }catch (Exception e){e.printStackTrace();}
                socket.close();
                }//end login
             //登錄結束
  //以下為處理客戶的新建請求    
else  if(str.equals("new")){
   try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//連接數據庫
        Connection c2=DriverManager.getConnection("jdbc:odbc:javaicq","sa","shift");
String newsql="insert into icq(nickname,password,email,info,place,pic) values(?,?,?,?,?,?)";
//準備接受用戶的呢稱,密碼,email,個人資料,籍貫,頭像等信息
       PreparedStatement prepare2=c2.prepareCall(newsql);
       String nickname=in.readLine().trim();
       String password=in.readLine().trim();
       String email=in.readLine().trim();
       String info=in.readLine().trim();
       String place=in.readLine().trim();
       int picindex=Integer.parseInt(in.readLine());
       prepare2.clearParameters();
       prepare2.setString(1,nickname);
       prepare2.setString(2,password);
       prepare2.setString(3,email);
       prepare2.setString(4,info);
       prepare2.setString(5,place);
       prepare2.setInt(6,picindex);
       int r3=prepare2.executeUpdate();//執行數據庫添加
String sql2="select icqno from icq where nickname=?";
//以下告訴客戶其注冊的號碼
       PreparedStatement prepare3=c2.prepareCall(sql2);
        prepare3.clearParameters();
       prepare3.setString(1,nickname);
       ResultSet r2=prepare3.executeQuery();
     while(r2.next()){
      //out.println(r2.getInt(1));
      no=r2.getInt(1);
      System.out.println(no);
     }
      out.println(no);
      out.println("ok");
c2.close();
//完畢
     }catch (Exception e){e.printStackTrace();out.println("false");}
     socket.close();
   }//end new
//新建用戶結束
//以下處理用戶查找好友
else if(str.equals("find")){
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection c3=DriverManager.getConnection("jdbc:odbc:javaicq","sa","shift");
  //以下連接數據庫,并且返回其他用戶的呢稱,性別,籍貫,個人資料等信息
     String find="select nickname,sex,place,ip,email,info from icq";
    Statement st=c3.createStatement();
    ResultSet result=st.executeQuery(find);
     while(result.next()){
     out.println(result.getString("nickname"));
     out.println(result.getString("sex"));
     out.println(result.getString("place"));
     out.println(result.getString("ip"));
      out.println(result.getString("email"));
       out.println(result.getString("info"));
     }//while end
     out.println("over");
     ////////GET ICQNO
     int d,x;
boolean y;
//以下返回用戶的jicq號碼,頭像號,及是否在線
     ResultSet iset=st.executeQuery("select icqno,pic,status from icq");
     while(iset.next()){
     d=iset.getInt("icqno");
     out.println(d);
     x=iset.getInt("pic");//pic info
     out.println(x);
     y=iset.getBoolean("status");
      if (y){out.println("1");}
           else {out.println("0");}
      //System.out.println(d);
     }
    // end send jicqno
     iset.close();
     /////////icqno end
      c3.close();result.close();
}catch (Exception e){e.printStackTrace();System.out.println("false");}
//socket.close();
}//end find
//查找好友結束
//以下處理用戶登錄時讀取其好友資料
else if(str.equals("friend")){
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection c4=DriverManager.getConnection("jdbc:odbc:javaicq","sa","shift");
//以下連接好友表,返回用戶的好友名單
     String friend="select friend from friend where icqno=?";
     PreparedStatement prepare4=c4.prepareCall(friend);
        prepare4.clearParameters();
         int icqno=Integer.parseInt(in.readLine());
         System.out.println(icqno);
         prepare4.setInt(1,icqno);
       ResultSet r4=prepare4.executeQuery();
       Vector friendno=new Vector();//該矢量保存好友號碼
        while(r4.next()){
      friendno.add(new Integer(r4.getInt(1)));
     }
//read friend info
//以下告訴客戶其好友的呢稱,號碼,ip地址,狀態,頭像,個人資料等信息
    out.println(friendno.size());
          for(int i=0;i<friendno.size();i++){
         String friendinfo="select nickname,icqno,ip,status,pic,email,info from icq where icqno=?";
      PreparedStatement prepare5=c4.prepareCall(friendinfo);
      prepare5.clearParameters();
       prepare5.setObject(1,friendno.get(i));
      ResultSet r5=prepare5.executeQuery();
      boolean status;
         while(r5.next()){
       out.println(r5.getString("nickname"));
           out.println(r5.getInt("icqno"));
           out.println(r5.getString("ip"));
         status=r5.getBoolean("status");
         if (status)out.println("1");
           else {out.println("0");}
        out.println(r5.getInt("pic"));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美综合在线观看第十页| 欧美日韩美女一区二区| 日韩国产在线一| 亚洲一区二区三区四区在线观看 | 欧美激情艳妇裸体舞| 精品欧美黑人一区二区三区| 91精品视频网| 日韩欧美国产成人一区二区| 欧美一区二区在线观看| 91精品国产综合久久久久久久| 欧美日韩卡一卡二| 制服丝袜中文字幕亚洲| 日韩美女视频在线| 久久婷婷国产综合精品青草 | 中文字幕巨乱亚洲| 国产精品久久久久永久免费观看 | 亚洲欧美日韩国产中文在线| 中文字幕一区二区三| 亚洲精品网站在线观看| 亚洲成av人片在线观看| 狠狠色丁香久久婷婷综合丁香| 成人一区二区三区视频在线观看| 成人激情动漫在线观看| 欧洲亚洲国产日韩| 日韩欧美一区二区三区在线| 久久这里都是精品| 一区二区三区四区乱视频| 日日噜噜夜夜狠狠视频欧美人| 美腿丝袜亚洲一区| 91性感美女视频| 日韩一级高清毛片| 1024成人网| 国内精品伊人久久久久av影院 | 7878成人国产在线观看| 久久久午夜电影| 一区二区三区中文字幕| 麻豆精品一区二区三区| 成人av一区二区三区| 欧美日韩另类国产亚洲欧美一级| 久久久综合精品| 亚洲成人av资源| 国产91精品久久久久久久网曝门| 91国偷自产一区二区三区观看| 亚洲精品一区二区三区在线观看| 综合欧美一区二区三区| 韩国三级电影一区二区| 欧美日韩成人激情| 亚洲视频在线一区| 国精品**一区二区三区在线蜜桃| 日本伦理一区二区| 国产午夜精品福利| 免费在线观看精品| 欧美日韩高清不卡| 成人欧美一区二区三区| 国产一区二区三区美女| 欧美一区二区视频在线观看2020| 亚洲另类在线制服丝袜| 成人午夜视频免费看| 国产亚洲欧美日韩在线一区| 免费人成黄页网站在线一区二区 | 欧美视频在线观看一区二区| 欧美激情一区二区| 国产福利一区二区三区视频 | 1024成人网| 国产一区二区免费看| 日韩三级视频中文字幕| 五月激情综合婷婷| 欧美精品v国产精品v日韩精品| 亚洲精品成人a在线观看| 成人黄色免费短视频| 欧美国产激情一区二区三区蜜月| 免费一级欧美片在线观看| 欧美日韩成人在线| 日本成人在线不卡视频| 91精品国产综合久久婷婷香蕉| 亚洲成人综合在线| 欧美日本国产一区| 男男视频亚洲欧美| 欧美xxx久久| 国产一区999| 中文字幕乱码日本亚洲一区二区| 国产高清在线精品| 中文字幕的久久| 在线观看av一区二区| 亚洲成av人片在线观看无码| 欧美精品自拍偷拍| 捆绑调教美女网站视频一区| 欧美精品一区二区三区很污很色的 | 亚洲精品视频一区| 精品视频一区三区九区| 亚洲第一二三四区| 日韩精品专区在线影院重磅| 黄页网站大全一区二区| 中文字幕一区二区三区av| 欧美色网一区二区| 精品一区二区免费视频| 国产精品久久久久久户外露出| 欧美午夜电影网| 久久超碰97中文字幕| 国产精品理论片| 91麻豆精品国产无毒不卡在线观看| 久久精品国内一区二区三区| 26uuu欧美日本| 91在线播放网址| 另类小说色综合网站| 国产精品美女一区二区在线观看| 日本精品免费观看高清观看| 日本vs亚洲vs韩国一区三区二区| 国产午夜精品一区二区三区嫩草| 91网站在线播放| 免费视频一区二区| 亚洲人成小说网站色在线| 91精品国产麻豆国产自产在线| 风流少妇一区二区| 日韩激情一二三区| 欧美国产一区二区在线观看| 欧美日韩中文字幕一区二区| 国产乱码精品1区2区3区| 亚洲电影在线播放| 中文字幕欧美日韩一区| 欧美一区二区三区日韩视频| 在线一区二区三区四区五区| 精品一区二区在线免费观看| 亚洲国产日日夜夜| 国产三级精品视频| 日韩欧美成人一区| 日本精品一区二区三区四区的功能| 狠狠色丁香久久婷婷综| 午夜视频在线观看一区| 国产精品污网站| 久久久久久一二三区| 欧美一级淫片007| 91视频观看免费| 成人一道本在线| 国产精品77777| 国产乱色国产精品免费视频| 日韩国产欧美在线播放| 亚洲尤物视频在线| 怡红院av一区二区三区| 国产精品超碰97尤物18| 国产亚洲欧美在线| 久久精品亚洲乱码伦伦中文 | 国产片一区二区三区| 欧美精品一区二区高清在线观看| 91精品国产综合久久福利软件 | 在线视频一区二区三| 99久久综合精品| 成人av片在线观看| 99久久综合狠狠综合久久| 成人性色生活片| a美女胸又www黄视频久久| 丁香天五香天堂综合| 国产一区二区电影| 成人免费看视频| 色域天天综合网| 在线观看国产日韩| 在线电影国产精品| 日韩精品一区在线观看| 精品日韩在线一区| 久久久久97国产精华液好用吗| 久久久久久免费毛片精品| 久久久av毛片精品| 中文字幕成人在线观看| 亚洲欧美成aⅴ人在线观看| 综合激情成人伊人| 亚洲一级电影视频| 久久成人免费日本黄色| 国产永久精品大片wwwapp| 国产老妇另类xxxxx| 国产99久久久国产精品潘金| av福利精品导航| 欧美视频完全免费看| 欧美大片免费久久精品三p| 日韩亚洲电影在线| 国产精品久久一级| 亚洲成国产人片在线观看| 秋霞电影一区二区| 国产精品系列在线播放| 在线看国产一区二区| 91精品国产综合久久福利软件 | 亚洲一区二区av在线| 日韩电影在线观看网站| 久久成人免费电影| 色婷婷激情综合| 26uuuu精品一区二区| 日韩一区中文字幕| 日韩二区在线观看| 成人精品在线视频观看| 欧美日韩高清在线| 中文字幕免费不卡| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产乱一区二区| 欧美日韩视频不卡| 国产精品伦理在线| 久久精品免费看| 欧美视频在线一区二区三区 | 欧洲一区在线电影| 久久精品视频一区| 蜜臀a∨国产成人精品| 成人av高清在线|