當前位置:首頁 » 安卓系統 » android登錄伺服器

android登錄伺服器

發布時間: 2022-09-12 18:18:02

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里找了好多方法都不行。

熱點內容
php人力 發布:2025-01-05 09:50:25 瀏覽:233
紫頭蒜存儲 發布:2025-01-05 09:29:48 瀏覽:32
c語言執行shell 發布:2025-01-05 09:25:26 瀏覽:413
sql資料庫管理器 發布:2025-01-05 09:17:27 瀏覽:859
安卓如何獲取callkit測試許可權 發布:2025-01-05 09:17:23 瀏覽:894
解壓是出現錯誤 發布:2025-01-05 09:17:15 瀏覽:362
風櫃冷量演算法 發布:2025-01-05 09:15:04 瀏覽:356
腳本被檢測到游戲行為違規 發布:2025-01-05 08:40:55 瀏覽:615
手柄藍牙編程 發布:2025-01-05 08:40:54 瀏覽:995
雲伺服器搭橋 發布:2025-01-05 08:40:12 瀏覽:420