zoukankan      html  css  js  c++  java
  • 基于SOCKET套接字的网络编程

    摘自书本 

    运行环境:ECLIPSE并且安装了android相关文件

    主要内容、功能:创建一个java project服务器端  创建一个android project客户端  实现点击客户端后服务器端即可发送短信给客户端。

    首先要创建一个java project作为服务器端

    输入以下代码

    import java.io.DataInputStream;

    import java.io.DataOutputStream;

    import java.net.ServerSocket;

    import java.net.Socket;

    public class Samle5_1Server {

        public static void main(String[] args){

        ServerSocket ss=null;

        Socket s=new Socket();

        DataInputStream din=null;

        DataOutputStream dout=null;

                                                                      

        try{

        ss=new ServerSocket(8890);

        System.out.println("have listen from 8888!");

           

        

       }

        catch(Exception e){

        System.out.println("1");

           e.printStackTrace();

        

       }

        while(true){

        try{

       s=ss.accept();

        din=new DataInputStream(s.getInputStream());

        dout=new DataOutputStream(s.getOutputStream());

       String msg=din.readUTF();

        System.out.println("ip:"+s.getInetAddress());

        System.out.println("msg:"+msg);

        System.out.println("============");

        dout.writeUTF("Hellow Client!");

        

       }

        catch(Exception e){

        System.out.println("2");

       e.printStackTrace();

       }

        finally{

        try{

        if(dout!=null)

       {

       dout.close();

        

       }

        if(din!=null)

       {

       din.close();

        

       }

        if(s!=null)

       {

       s.close();

        

       }

       }

        catch(Exception e){

        System.out.println("3");

           e.printStackTrace();

           }

        

       }

        

       }

        }

    }

    接下来创建一个android project客户端,但是在此之前有一小关卡要打开

    就是在你新创建的android project里打开AndroidMainfest.xml在其</mainfest>标记之前添加语句

    <uses-permissionandroid:name="android.permission.INTERNET"/>

    完成这一步后再在SRC文件夹里新建一个包 一个类(我的类命名Sample5_1)

    接这再输入下列代码:

    import java.io.DataInputStream;

    import java.io.DataOutputStream;

    import java.net.Socket;

    import android.app.Activity;

    import android.os.Bundle;

    import android.view.View;

    import android.view.View.OnClickListener;

    import android.widget.Button;

    import android.widget.EditText;

    import android.widget.TextView;

    public class Sample5_1ServerActivity extends Activity implements OnClickListener{

        /** Called when the activity is first created. */

        //@Override

        Button button1;

        EditText editText;

        TextView textView;

        

        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.main);

            button1=(Button) findViewById(R.id.button1);

            editText=(EditText)findViewById(R.id.editText);

            textView=(TextView)findViewById(R.id.textView);

            button1.setOnClickListener(this);

        }

    @Override

    public void onClick(View v) {

    // TODO Auto-generated method stub

    Socket s=null;

    DataOutputStream dout=null;

    DataInputStream din=null;

    if(v==button1){

    try{

    s=new Socket("192.168.12.1",8890);                                          //这里设置的是服务端的IP:192.168.12.1 如果读者是在本纪做试验 最好输入自己的IP地址  8890是打开的端口  记得输入一个目前没有程序在使用的端口。 

    dout=new DataOutputStream(s.getOutputStream());

    din=new DataInputStream(s.getInputStream());

    dout.writeUTF(editText.getText().toString());

    textView.setText("the message from the server Two"+din.readUTF());

    }

    catch(Exception e){

    e.printStackTrace();

    }

    finally{

    try{

    if(dout!=null)

    {

    dout.close();

    }

    if(din!=null)

    {

    din.close();

    }

        if(s!=null){

    s.close();

        }

    }

    catch(Exception e){

    e.printStackTrace();

    }

    }

    }

    }

    }

    弄完这些 运行客户端以及服务端即可实验  客户端按一下按钮后  就会收到来自服务端的消息。

    读者觉得有什么觉得更正的地方麻烦提出来  互相学习最重要^^

  • 相关阅读:
    题解报告:hdu 2062 Subset sequence
    CSS3滑块菜单
    CSS3环形动画菜单
    可折叠显示的发光搜索表单
    Tab动画菜单
    侧边自定义滚动条
    css3条纹边框效果
    css3图片过滤效果
    CSS3图片悬停放大动画
    CSS3响应式侧边菜单
  • 原文地址:https://www.cnblogs.com/yoblue/p/2614305.html
Copyright © 2011-2022 走看看