14网络编程
来源:互联网 发布:财经网数据 编辑:程序博客网 时间:2024/06/05 06:08
Socket编程
TCP/UDP-IP
客户端:
Socket
OutputStream
InputStream
服务器端:
ServerSocket
OutputStream
InputStream
//TCPserver
ServerThread serverThread = new ServerThread();
serverThread.start();
class ServerThread extends Thread{
public void run(){
ServerSocket serverSocket = null;
try{
serverSocket = new ServerSocket(3456);
Socket socket = serverSocket.accept();
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024*4];
int temp = 0;
while((temp = inputStream.read(buffer))!=-1){
System.out.println(new String(buffer,0,temp));
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
serverSocket.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
//TCPclient
public static void main(String[] args){
try{
Socket socket = new Socket("192.168.1.10",3456);
InputStream inputStream = new FileInputStream("f://file/words.txt");
OutputStream outputStream = socket.getOutputStream();
byte[] buffer = new byte[4*1024];
int temp = 0;
while((temp = inputStream.read(buffer))!=-1){
outputStream.write(buffer,0,temp);
}
outputStream.flush();
}catch(IOException e){
e.printStackTrace();
}
}
//UDPserver
public void run(){
try{
DatagramSocket socket = new DatagramSocket(7891);
byte data[] = new byte[1024];
DatagramPacket packet = new DatagramPacket(data,data.length);
socket.receive(packet);
String result = new String(packet.getData(), packet.getOffset(), packet.getLength());
TextViewx.setText(result);
System.out.println(result);
}catch(Exception e){
e.printStackTracet();
}
}
//UDPclient
public static void main(String[] args){
try{
DatagramSocket socket = new DatagramSocket(7891);
InetAddress serverAddress = InetAddress.getByName("192.168.1.104");
String str = EditTextx.getText().toString();
byte data[] = str.getBytes[];
DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,7891);
socket.send(packet);
}catch(IOException e){
e.printStackTracert();
}
}
TextViewx.setText(getLocalHostIp());
public static String getLocalHostIp(){
String ipaddress = "";
try{
Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements()){
NetworkInterface nif = en.nextElement();
Enumeration<InetAddress> inet = nif.getInetAddresses();
while (inet.hasMoreElements()){
InetAddress ip = inet.nextElement();
if (!ip.isLoopbackAddress()&&InetAddressUtils.isIPv4Address(ip.getHostAddress())){
return ipaddress = "本机的ip是" + ":" + ip.getHostAddress();
}
}
}
}catch (SocketException e){
Log.e("feige", "获取本地ip地址失败");
e.printStackTrace();
}
return ipaddress;
}
- 14网络编程
- 14网络编程
- 网络编程14
- day-14-(网络编程【Socket网络编程】)
- 第14课 网络编程
- 孙鑫MFC(14)--网络编程
- python 14章,网络编程
- 第14课 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- 网络编程
- Effective C++:条款44:将与参数无关的代码抽离template
- 堆排序和优先队列【最小堆】
- 15短信电话
- 程序语言基础总结
- 软件计划
- 14网络编程
- Memory Layout of C Programs
- 13WIFI操作
- 《数据结构》实验一: VC编程工具的灵活使用
- 12文件下载
- 维护图的联通性
- Bag of Features (BOF)图像检索算法
- 实用的按钮样式
- fragment监听返回键