android登录服务器
1. Android 连接Cas服务器的实现单点登录(SSO)
如果我们的网站需要和另一个域名做统一认证,也就是在我们网站登录,但真正的功能却在另一个网站来提供。许多都以 passport 的方式。 整个认证可以分三步完成 第一步:本地验证
这个很简单,输入本地的用户名和密码,然后服务器认证通过,并返回正确的Cookie;
第二步:做远程认证,并返回远程连接
通过本地Cookie,确认用户合法性,然后服务器端调用远程的登录程序,返回一个远程认证号的URL,这个URL里面包含了一个唯一的认证码,使用Location的方式
第三步:远程登录
客户端使用前一步的URL,访问远程的服务器,服务器确认认证码的正确性,再返回正确的远程Cookie.
至此,本地认证,通过一个URL,实现了远程认证。
2. Android 如何与本地服务器进行连接,进行本地服务验证
在服务端写一个socket,用死循环的方式监听本机的某个端口,如30000,用来接收登录的输入流,在android端点击登录时创建一个对应该端口的socket,把登录信息写到输出流里即可。服务器端就能判断出是否允许登录
3. 如何在android手机上使用telnet方式登录公司的服务器
那你必须需要一个android下的telnet客户端才行,在linux下直接可以通过命令行登陆,但是android都把linux很多封装起来了,作为上层很多都访问不到的,当然你也可以自己写一个出来,通过,Jni+NDK方式实现
4. android如何用模拟器登录apache服务器
不是太清楚你所说的交互是什么样的交互, apache是web服务器, 所以一般情况下只要用安卓手机访问apache建的网站就实现交互了。 Eclipse 与 Apache Tomcat 直接集成可以参Nathan A. Good 的文章
5. 用android的hello anychat登录,不管是连接自己部署的服务器还是官网的服务器
/**
* Android视频聊天
* 1、初始化sdk 2、连接服务器、 3、用户登录;4、进入房间;5、打开本地视频;6、请求对方视频
*/
public class VideoChatActivity extends Activity implements AnyChatBaseEvent
{
private AnyChatCoresdk anychat; // 核心sdk
private surfaceView remotesurfaceView; // 对方视频
private surfaceView localsurfaceView; // 本地视频
private ConfigEntity configEntity;
private boolean bSelfVideoOpened = false; // 本地视频是否已打开
private boolean bOtherVideoOpened = false; // 对方视频是否已打开
private TimerTask mTimerTask; // 定时器
private Timer mTimer = new Timer(true);
private Handler handler; // 用Handler来不间断刷新即时视频
private List<String> userlist = new ArrayList<String>();//保存在线用户列表
private int userid; // 用户id
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_chat);
remotesurfaceView = (surfaceView) findViewByid(R.id.surface_remote);
localsurfaceView = (surfaceView) findViewByid(R.id.surface_local);
configEntity = ConfigService.LoadConfig(this);//加载视频通话设置
loginSystem();// 初始化sdk 连接服务器
mTimerTask = new TimerTask(){
public void run(){
Message mesasge = new Message();
handler.sendMessage(mesasge);
}
};
mTimer.schele(mTimerTask, 1000, 100);
handler = new Handler(){
@Override
public void handleMessage(Message msg){
VideoChat();// 不间断显示即时视频通话画面
super.handleMessage(msg);
}
};
}
// 初始化sdk 连接服务器
private void loginSystem(){
if (anychat == null){
anychat = new AnyChatCoresdk();
anychat.SetBaseEvent(this); // 设置基本事件回调函数
if (configEntity.useARMv6Lib != 0) // 使用ARMv6指令集
anychat.SetsdkOptionInt(AnyChatDefine.
BRAC_SO_COREsdk_USEARMV6LIB, 1);
anychat.Initsdk(android.os.Build.VERSION.sdk_INT, 0); // 初始化sdk
}
anychat.Connect("demo.anychat.cn", 8906);// 连接服务器
}
// 显示即时视频通话画面
public void VideoChat(){
if (!bOtherVideoOpened){
if (anychat.GetCameraState(userid) == 2
&& anychat.GetUserVideoWidth(userid) != 0){
surfaceHolder holder = remotesurfaceView.getHolder();
holder.setFormat(PixelFormat.RGB_565);
holder.setFixedSize(anychat.GetUserVideoWidth(userid),
anychat.GetUserVideoHeight(userid));
surface s = holder.getsurface(); // 获得视频画面
anychat.SetVideoPos(userid, s, 0, 0, 0, 0); // 调用api显示视频画面
bOtherVideoOpened = true;
}
if (!bSelfVideoOpened){
if (anychat.GetCameraState(-1) == 2
&& anychat.GetUserVideoWidth(-1) != 0){
surfaceHolder holder = localsurfaceView.getHolder();
holder.setFormat(PixelFormat.RGB_565);
holder.setFixedSize(anychat.GetUserVideoWidth(-1),
anychat.GetUserVideoHeight(-1));
surface s = holder.getsurface();
anychat.SetVideoPos(-1, s, 0, 0, 0, 0);
bSelfVideoOpened = true;
}
}
}
public void OnAnyChatConnectMessage(boolean bSuccess){
if (!bSuccess){
Toast.makeText(VideoChatActivity.this, "连接服务器失败,自动重连,请稍后...", Toast.LENGTH_SHORT).show();
}
anychat.Login("android", ""); // 服务器连接成功 用户登录
}
public void OnAnyChatLoginMessage(int dwUserid, int dwErrorCode){
if (dwErrorCode == 0) {
Toast.makeText(this, "登录成功!", Toast.LENGTH_SHORT).show();
anychat.EnterRoom(1, ""); // 用户登录成功 进入房间
ApplyVideoConfig();
} else {
Toast.makeText(this, "登录失败,错误代码:" + dwErrorCode, Toast.LENGTH_SHORT).show();
}
}
public void OnAnyChatEnterRoomMessage(int dwRoomid, int dwErrorCode){
if (dwErrorCode == 0) { // 进入房间成功 打开本地音视频
Toast.makeText(this, "进入房间成功", Toast.LENGTH_SHORT).show();
anychat.UserCameraControl(-1, 1); // 打开本地视频
anychat.UserSpeakControl(-1, 1); // 打开本地音频
} else {
Toast.makeText(this, "进入房间失败,错误代码:" + dwErrorCode, Toast.LENGTH_SHORT).show();
}
}
public void OnAnyChatOnlineUserMessage(int dwUserNum, int dwRoomid){
if (dwRoomid == 1){
int user[] = anychat.GetOnlineUser();
if (user.length != 0){
for (int i = 0; i < user.length; i++){
userlist.add(user[i]+"");
. }
String temp =userlist.get(0);
userid = Integer.parseInt(temp);
anychat.UserCameraControl(userid, 1);// 请求用户视频
anychat.UserSpeakControl(userid, 1); // 请求用户音频
}
else {
Toast.makeText(VideoChatActivity.this, "当前没有在线用户", Toast.LENGTH_SHORT).show();
}
}
}
public void OnAnyChatUserAtRoomMessage(int dwUserid, boolean bEnter){
if (bEnter) {//新用户进入房间
userlist.add(dwUserid+"");
}
else { //用户离开房间
if (dwUserid == userid)
{
Toast.makeText(VideoChatActivity.this, "视频用户已下线", Toast.LENGTH_SHORT).show();
anychat.UserCameraControl(userid, 0);// 关闭用户视频
anychat.UserSpeakControl(userid, 0); // 关闭用户音频
userlist.remove(userid+""); //移除该用户
if (userlist.size() != 0)
{
String temp =userlist.get(0);
userid = Integer.parseInt(temp);
anychat.UserCameraControl(userid, 1);// 请求其他用户视频
anychat.UserSpeakControl(userid, 1); // 请求其他用户音频
}
}
141. else {
userlist.remove(dwUserId+""); //移除该用户
}
}
}
public void OnAnyChatLinkCloseMessage(int dwErrorCode){
Toast.makeText(VideoChatActivity.this, "连接关闭,error:" + dwErrorCode, Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy(){ //程序退出
anychat.LeaveRoom(-1); //离开房间
anychat.Logout(); //注销登录
anychat.Release(); //释放资源
mTimer.cancel();
super.onDestroy();
}
// 根据配置文件配置视频参数
private void ApplyVideoConfig(){
if (configEntity.configMode == 1) // 自定义视频参数配置
{
// 设置本地视频编码的码率(如果码率为0,则表示使用质量优先模式)
anychat.SetsdkOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_BITRATECTRL,configEntity.videoBitrate);
if (configEntity.videoBitrate == 0)
{
// 设置本地视频编码的质量
anychat.SetsdkOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_QUALITYCTRL,configEntity.videoQuality);
}
// 设置本地视频编码的帧率
anychat.SetsdkOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FPSCTRL,configEntity.videoFps);
// 设置本地视频编码的关键帧间隔
anychat.SetsdkOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_GOPCTRL,configEntity.videoFps * 4);
// 设置本地视频采集分辨率
anychat.SetsdkOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_WIDTHCTRL,configEntity.resolution_width);
anychat.SetsdkOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_HEIGHTCTRL,configEntity.resolution_height);
// 设置视频编码预设参数(值越大,编码质量越高,占用cpu资源也会越高)
anychat.SetsdkOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_PRESETCTRL,configEntity.videoPreset);
}
// 让视频参数生效
anychat.SetsdkOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_APPLYPARAM,configEntity.configMode);
// P2P设置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_NETWORK_P2PPOLITIC,configEntity.enableP2P);
// 本地视频Overlay模式设置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_OVERLAY,configEntity.videoOverlay);
// 回音消除设置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_AUDIO_ECHOCTRL,configEntity.enableAEC);
// 平台硬件编码设置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_CORESDK_USEHWCODEC,configEntity.useHWCodec);
// 视频旋转模式设置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_ROTATECTRL,configEntity.videorotatemode);
// 视频平滑播放模式设置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_STREAM_SMOOTHPLAYMODE,configEntity.smoothPlayMode);
// 视频采集驱动设置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_CAPDRIVER,configEntity.videoCapDriver);
// 本地视频采集偏色修正设置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_LOCALVIDEO_FIXCOLORDEVIA,configEntity.fixcolordeviation);
// 视频显示驱动设置
anychat.SetSDKOptionInt(AnyChatDefine.BRAC_SO_VIDEOSHOW_DRIVERCTRL,configEntity.videoShowDriver);
}
}
6. android手机访问服务器, 手机和服务器间怎么实现
手机可以直接访问服务器呀,只要APN设置好。能上网就行。其实和电脑一样,IP访问,只不过是移动网络帮你以ip方式访问公网服务器地址。
7. android如何访问远程服务器
1、现在电脑上安装Teamviewer,运行该软件,会生成ID和密码,
如果要每次开机都能远程访问,可以设置无人值守访问,如下图:
8. android,app的后台服务器,可以注册,登录功能的,需要哪些知识
做后台服务器和android关系不大。你是android的,推荐你可以搭建一个javaweb的服务端。
服务端需要用到以下知识:
1、用tomcat做一个web服务器
2、用java开发一个web客户端,一般采用到以下一些技术 spring、mybatis。其中spring 的mvc做业务控制层,mybatis作为连接数据库用。
3、spring mvc可以以http接口的方式,提供出来,然后android端通过http访问
4、当然还有数据库建表之类的,数据库推荐你用mysql
9. 【求助】android系统如何简单地访问服务器
Android的网络编程分为2种:基于http协议的,和基于socket的。Socket一般应用于社交聊天的应用中,这里关联的比较少就不讲了,我们来说说基于HTTP协议的编程。
基本原理 : 它的工作原理特别的简单,就是客户端向服务器发出一条HTTP 请求,服务器收到请求之后会返回一些数据给客户端,然后客户端再对这些数据进行解析和处理就可以了。
HTTP请求:HttpURLConnection 和 HttpClient
服务器端返回客户端的内容:
1)以HTML代码的形式返回。
2)以XML字符串的形式返回。返回的数据需要通过XML解析(SAX、DOM,Pull,等)器进行解析。
3)以json对象的方式返回。
10. android 如何连接自己的服务器
10楼的这个是httpresponse是判断服务器返回数据的方法,而楼主想要的是判断连接的服务器地址是否通,我现在也在愁这个事情,httppost里找了好多方法都不行。