ダークホースプログラマー_JAva入門_ネットワークプログラミング_02
5435 ワード
--------androidトレーニング、javaトレーニング、ご交流をお待ちしております!--------
一.TCPアップロード画像
クライアント
サービス側
二.同時に複数の顧客が画像をアップロードする
三.カスタムサービス側
ServerSocket ss=new ServerSocket(1005);
Socket s=ss.accpet()
PrintWriter out=new PrintWriter(s.getOutPutStream(),true)
out.println(「カスタマーサービス側は私」)
四.Tomcatサービス
手順:1.サービス側を先に実行する
2.クライアント・アクセスのカスタマイズ
五.URL用途
ServerSocket(int port,int backlog)
portリスニングサービスで使用されるインタフェース
backlog最大接続数
六.ドメイン名解析
省略
一.TCPアップロード画像
クライアント
/*
: 。
*/
/*
:
1. 。
2. 。
3. socket 。
4. 。
5. 。
*/
import java.net.*;
import java.io.*;
class PicClient
{
public static void main(String[] args)throws Exception
{
Socket s=new Socket("172.16.56.237",1005);
FileInputStream fis=new FileInputStream("e:\\1.jpg");
OutputStream out=s.getOutputStream();
byte[] buf=new byte[1024];
int len=0;
while((len=fis.read(buf))!=-1)
{
out.write(buf,0,len);
}
s.shutdownOutput();// 。( )
InputStream in=s.getInputStream();
byte[] bufIn=new byte[1024];
int num=in.read(bufIn);
System.out.println(new String(bufIn,0,num));
fis.close();
s.close();
}
}
サービス側
/*
:
*/
import java.net.*;
import java.io.*;
class PicServer
{
public static void main(String[] args)throws Exception
{
ServerSocket ss=new ServerSocket(1005);
Socket s=ss.accept();
InputStream in=s.getInputStream();
FileOutputStream fos=new FileOutputStream("f:\\server.jpg");
byte[] buf=new byte[1024];
int len=0;
while((len=in.read(buf))!=-1)
{
fos.write(buf,0,len);
}
OutputStream out=s.getOutputStream();
out.write(" ".getBytes());
fos.close();
s.close();
ss.close();
}
}
二.同時に複数の顧客が画像をアップロードする
class PicThread implements Runnable
{
private Socket s;
PicThread(Socket s)
{
this.s=s;
}
public void run()
{
int count=1;
String ip=s.getInetAddress().getHostAddress();
try
{
System.out.println(ip+"..........connceted");
InputStream in=s.getInputStream();
//
File file=new File("f:\\"+ip+"("+(count)+")"+".jpg");
while(file.exists())
file=new File("f:\\"+ip+"("+(count++)+")"+".jpg");
FileOutputStream fos=new FileOutputStream(file);
byte[] buf=new byte[1024];
int len=0;
while((len=in.read(buf))!=-1)
{
fos.write(buf,0,len);
}
OutputStream out=s.getOutputStream();
out.write(" ".getBytes());
fos.close();
s.close();
}
catch (Exception e)
{
throw new RuntimeException(ip+" !");
}
}
}
class PicServer
{
public static void main(String[] args)throws Exception
{
ServerSocket ss=new ServerSocket(1005);
while(true)
{
Socket s=ss.accept();
new Thread(new PicThread(s)).start();
}
}
}
三.カスタムサービス側
ServerSocket ss=new ServerSocket(1005);
Socket s=ss.accpet()
PrintWriter out=new PrintWriter(s.getOutPutStream(),true)
out.println(「カスタマーサービス側は私」)
四.Tomcatサービス
手順:1.サービス側を先に実行する
2.クライアント・アクセスのカスタマイズ
五.URL用途
/*
URLConnection :
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
class MyIEByGUI
{
private Frame f;
private TextField tf;
private Button but;
private TextArea ta;
private Dialog d;
private Label lab;
private Button okBut;
MyIEByGUI2()
{
init();
}
public void init()
{
f=new Frame("my window");
f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout());
tf=new TextField(60);
but=new Button(" ");
ta=new TextArea(25 ,70);// ,
d=new Dialog(f," ",true);// 3 : 。
d.setBounds(400,200,240,150);
d.setLayout(new FlowLayout());
lab=new Label();
okBut=new Button(" ");
d.add(lab);
d.add(okBut);
f.add(tf);
f.add(but);
f.add(ta);
myEvent();
f.setVisible(true);
}
private void myEvent()
{
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
showDir();
}
catch (Exception ee)
{
String info=" , !";
lab.setText(info);
d.setVisible(true);
}
}
});
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
try
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
showDir();
}
catch (Exception ee)
{
String info=" , !";
lab.setText(info);
d.setVisible(true);
}
}
});
okBut.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
d.setVisible(false);
}
});
d.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
okBut.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
d.setVisible(false);
}
});
}
private void showDir()throws Exception
{
ta.setText("");//
String urlPath=tf.getText();// http://172.16.56.237:8080/myweb/index.html
URL url=new URL(urlPath);
URLConnection conn=url.openConnection();
InputStream in=conn.getInputStream();
byte[] buf=new byte[1024];
int len=in.read(buf);
ta.setText(new String(buf,0,len));
}
public static void main(String[] args)
{
new MyIEByGUI();
}
}
ServerSocket(int port,int backlog)
portリスニングサービスで使用されるインタフェース
backlog最大接続数
六.ドメイン名解析
省略