关键词不能为空

当前您在: 主页 > 英语 >

Socket客户端和服务端的编程实现

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-15 21:16
tags:

-

2021年2月15日发(作者:sea)





2014






2015



学年








学期



实验课程名称:









计算机新技术讲座














实验项目名称



实验者



客户和服务器通信编程实现




专业


班级




实验成绩



实验日期






第一部分:实验分析与设计



一、



实验内容描述(问题域描述)




1


、实验目的




理解套接字


(socket)


通信的基本原理和机制




理解进程间通信的机制。




2


、实验要求





分别编写客服端和服务器端代码,


建立客户端与服务器端之间正确的


socket


连结


(语言自选,


附源代码)




二、



实验 基本原理与设计


(包括实验方案设计,


实验手段的确定,



验步骤等)



1.


实验原理



网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个


socket




Socket


的英文原义是







插座


”< /p>


。作为


BSD UNIX


的进程通信机制 ,取后一种意思。通常


也称作



套接字< /p>




用于描述


IP


地址和端口,


是一个通信链的句柄,


可 以用来实现不同虚拟机或


不同计算机之间的通信。在


Inter net


上的主机一般运行了多个服务软件,同时提供几种服务。


每种服务都打开一个


Socket


,并绑定到一个端口上,不同 的端口对应于不同的服务。


Socket


如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编


号,有的插座提供


220


伏交流电,

< br>


有的提供


110


伏交流电,有 的则提供有线电视节目。



客户


软件将 插头插到不同编号的插座,就可以得到不同的服务。



常用的< /p>


Socket


类型有两种:


流式


Socket



SOCK_STREAM



和数据报式


Socket

< br>(


SOCK_DGRAM



。< /p>


流式是一种面向连接的


Socket


,< /p>


针对于面向连接的


TCP


服务应用;


数据报式


Socket


是一种无连


接的


Socket



对 应于无连接的


UDP


服务应用。



Socket


建立为了建立


Socket< /p>



程序可以调用


Socket

< p>
函数,该函数返回一个类似于文件描述符的句柄。


socket

< p>
函数原型为:


int socket(int domain, int


type,


int


protoco l);domain


指明所使用的协议族,通常为


PF_INE T


,表示互联网协议族(


TCP/IP


协议族)



type


参数指定


socket


的类型:


SOCK_STREAM



SOCK_DGRAM


< p>
Socket


接口还定义


了原始

< br>Socket



SOCK_RAW



,允许程序使用低层协议;


protocol


通常赋值




Socket( )


调用返


回一个整型


socket


描述符,你可以在后面的调用使用它。



S ocket


描述符是一个指向内部数据


结构的指针,它指向描述 符表入口。调用


Socket


函数时,


socket


执行体将建立一个


Socket

< br>,实


际上



建立一个


Socket


意味着为一个


Socket

< p>
数据结构分配存储空间。



Socket


执行体为你管理


描述符表。两个网络程序之间的一个网络连接包括五种信 息:通信协议、本地协议地址、本地


主机端口、远端主机地址和远端协议端口。


Socket


数据结构中包含这五种信息。


< /p>


Socket


在测


量软件中的使用也很广 泛。







2.


实验步骤



本实验在


Visual Studio 2010


以及安卓模拟器下实现,


项目包括安卓客户端源码和服


务端


C#


源码,


本机


ip


为,


实验要实现客户端与服务端在


4567


号端口的通信,


具体


代码如下:





服务端核心代码:



using System;



using



;



using ;



using



using



using ;



using



;



using ;



using



;




namespace MySocketServer



{







public


partial


class


FormServer : Form







{











public


FormServer()











{















InitializeComponent();











}











ddressFamily ==























{



























[


i


].ToString());























}



















}



















return



listIP


;















}















catch


(Exception


ex


)















{



















(



获取本机


IP


出错


:


+



















();



















return



listIP


;















}











}







}



}





客户端核心代码:



package



















class


MainActivity


extends


Activity {





private


TextView


textReceive


=


null


;




private


EditText


textSend


=


null


;




private


Button


btnConnect


=


null


;




private


Button


btnSend


=


null


;




private



static



final


String


ServerIP


=



;




private



static



final



int



ServerPort


= 4567;




private


Socket


socket


=


null


;




private


String


strMessage


;




private



boolean



isConnect


=


false


;




private


OutputStream


outStream


;




private


Handler


myHandler


=


null


;




private


ReceiveThread


receiveThread


=


null


;




private



boolean



isReceive


=


false


;






@Override




protected



void


onCreate(Bundle


savedInstanceState


) {





(< /p>


savedInstanceState


);




setContentView






textReceive


= (TextView)findViewById


textSend


= (EditText)findViewById



btnConnect


= (Button)findViewById



btnSend


= (Button)findViewById







tart();







}






}





});






oString();







new


Thread(


sendTh read


).start();






}





});





myHandler


=


new


Handler(){






@Override






public



void


handleMessage(Message


msg


){







(.toString());






}





};




}




rim();







}


catch


(UnsupportedEncodingException


e


) {










getMenuInflater().inflate


menu


);





return



true


;




}


-


-


-


-


-


-


-


-



本文更新与2021-02-15 21:16,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/656269.html

Socket客户端和服务端的编程实现的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文