Streamreader for Server Urls

url in StreamReader

You need to use WebClient to read files from server ;

WebClient client = new WebClient();
Stream stream = client.OpenRead("http://localhost:81/c/"+ rich);
StreamReader reader = new StreamReader(stream);
string str= reader.ReadToEnd();

How to access and read file using StreamReader on remote server?

I've ended up using the following code:

    public class ConnectToSharedFolder : IDisposable
{
readonly string _networkName;

public ConnectToSharedFolder(string networkName, NetworkCredential credentials)
{
_networkName = networkName;

var netResource = new NetResource
{
Scope = ResourceScope.GlobalNetwork,
ResourceType = ResourceType.Disk,
DisplayType = ResourceDisplaytype.Share,
RemoteName = networkName
};

var userName = string.IsNullOrEmpty(credentials.Domain)
? credentials.UserName
: string.Format(@"{0}\{1}", credentials.Domain, credentials.UserName);

var result = WNetAddConnection2(
netResource,
credentials.Password,
userName,
0);

if (result != 0)
{
throw new Win32Exception(result, "Error connecting to remote share");
}
}

~ConnectToSharedFolder()
{
Dispose(false);
}

public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}

protected virtual void Dispose(bool disposing)
{
WNetCancelConnection2(_networkName, 0, true);
}

[DllImport("mpr.dll")]
private static extern int WNetAddConnection2(NetResource netResource,
string password, string username, int flags);

[DllImport("mpr.dll")]
private static extern int WNetCancelConnection2(string name, int flags,
bool force);

[StructLayout(LayoutKind.Sequential)]
public class NetResource
{
public ResourceScope Scope;
public ResourceType ResourceType;
public ResourceDisplaytype DisplayType;
public int Usage;
public string LocalName;
public string RemoteName;
public string Comment;
public string Provider;
}

public enum ResourceScope : int
{
Connected = 1,
GlobalNetwork,
Remembered,
Recent,
Context
};

public enum ResourceType : int
{
Any = 0,
Disk = 1,
Print = 2,
Reserved = 8,
}

public enum ResourceDisplaytype : int
{
Generic = 0x0,
Domain = 0x01,
Server = 0x02,
Share = 0x03,
File = 0x04,
Group = 0x05,
Network = 0x06,
Root = 0x07,
Shareadmin = 0x08,
Directory = 0x09,
Tree = 0x0a,
Ndscontainer = 0x0b
}
}
}

And to use this way:

            using (new ConnectToSharedFolder(networkPath, credentials))
{
StreamReader str = new StreamReader(@"\\192.168.0.1\C$\Test\test.txt");
var x = str.ReadToEnd();
Console.WriteLine(x);

This code is just exactly made for my question!

Hit external url from code-behind

Make sure you're doing a POST and not a GET method. This is some similar code that I've used in the past.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);        
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = "POST";
request.Timeout = 30000;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

How to connect another server using network?

The string you pass in to WebRequest.Create needs to be a valid Uri. Try WebRequest.Create("http://10.3.4.56").

TIP! Use the static Uri.IsWellFormedUriString method to check if the URI string is valid.

StreamReader on NetworkStream not reading line

Your immediate problem is that you're trying to use the same stream for reading and writing. NetStream is the input stream--the data from the client. If you want to write to the socket, you need to create a stream from the socket.

As it's written, you're writing to the client stream. You need to write to the server stream.

What I don't understand is why you're using TcpClient on the client side, and raw sockets on the server side after creating a TcpListener. You'd be better off using AcceptTcpClient. Then you could write to that client's stream and read from the other stream.

To create a NetworkStream from the socket, use the constructor. I strongly suggest, though, that you switch to AcceptTcpClient instead.



Related Topics



Leave a reply



Submit